phpcool 发表于 2010-01-13 16:32

在线图片处理平台[原创]

原文:http://blog.liuts.com/post/178/
      平台基于php+ImageMagick+prototype.js,实现在线图片处理。可以处理来自服务器本身、远程服务器及用户本地的图片,支持JPG、BMP、GIF、FITS、PNG、TIFF、PDF、MIFF、PSD、WBMP等几十种常用文件格式。

在线测试
http://webps.liuts.com

平台界面
http://blog.liuts.com/attachment.php?fid=56

处理代码

<?
/*
作者:刘天斯
邮箱:liutiansi@gmail.com
最后更新:2007-01-25 10:27
BLOG:http://blog.liuts.com
功能:实现根据处理ID进行相应的图片处理;
*/

session_start();
header("Content-Type: text/html;charset=GBK");
$va=$_REQUEST;
$vb=$_REQUEST;
$vc=$_REQUEST;
$vd=$_REQUEST;
$ve=$_REQUEST;
$optype=$_REQUEST;
$textCent=$_REQUEST;
copy("Finally/".$_SESSION['USERSESSION']."/".$_SESSION['USERSESSION'],"tmp/".$_SESSION['USERSESSION']."/".$_SESSION['USERSESSION']);
switch ($optype) {
case "1":
    exec("/usr/local/bin/convert -mattecolor ".$ve." -frame ".$va."x".$va."+".$vb." Finally/".$_SESSION['USERSESSION']."/".$_SESSION['USERSESSION']." Finally/".$_SESSION['USERSESSION']."/".$_SESSION['USERSESSION']);
    break;
case "2":
    exec("/usr/local/bin/convert -resize ".$va."x".$va." Finally/".$_SESSION['USERSESSION']."/".$_SESSION['USERSESSION']." Finally/".$_SESSION['USERSESSION']."/".$_SESSION['USERSESSION']."");
    break;
case "3":
    exec("/usr/local/bin/convert -flip Finally/".$_SESSION['USERSESSION']."/".$_SESSION['USERSESSION']." Finally/".$_SESSION['USERSESSION']."/".$_SESSION['USERSESSION']."");
    break;
case "4":
    exec("/usr/local/bin/convert -flop Finally/".$_SESSION['USERSESSION']."/".$_SESSION['USERSESSION']." Finally/".$_SESSION['USERSESSION']."/".$_SESSION['USERSESSION']."");
    break;
case "5":
    exec("/usr/local/bin/convert -raise ".$va."x".$va." Finally/".$_SESSION['USERSESSION']."/".$_SESSION['USERSESSION']." Finally/".$_SESSION['USERSESSION']."/".$_SESSION['USERSESSION']."");
    break;
case "6":
    exec("/usr/local/bin/convert +raise ".$va."x".$va." Finally/".$_SESSION['USERSESSION']."/".$_SESSION['USERSESSION']." Finally/".$_SESSION['USERSESSION']."/".$_SESSION['USERSESSION']."");
    break;      
case "7":
    exec("/usr/local/bin/convert -sharpen ".$va." Finally/".$_SESSION['USERSESSION']."/".$_SESSION['USERSESSION']." Finally/".$_SESSION['USERSESSION']."/".$_SESSION['USERSESSION']."");
    break;   
case "8":
    exec("/usr/local/bin/convert -monochrome Finally/".$_SESSION['USERSESSION']."/".$_SESSION['USERSESSION']." Finally/".$_SESSION['USERSESSION']."/".$_SESSION['USERSESSION']."");
    break;
case "9":
    exec("/usr/local/bin/convert -colorize ".$va.",".$vb.",".$vc." Finally/".$_SESSION['USERSESSION']."/".$_SESSION['USERSESSION']." Finally/".$_SESSION['USERSESSION']."/".$_SESSION['USERSESSION']."");
    break;
case "10":
    exec("/usr/local/bin/convert -sample 10% -sample 1000% Finally/".$_SESSION['USERSESSION']."/".$_SESSION['USERSESSION']." Finally/".$_SESSION['USERSESSION']."/".$_SESSION['USERSESSION']."");
    break;      
case "12":
    exec("/usr/local/bin/convert -rotate ".$va." Finally/".$_SESSION['USERSESSION']."/".$_SESSION['USERSESSION']." Finally/".$_SESSION['USERSESSION']."/".$_SESSION['USERSESSION']."");
    break;
case "13":
    exec("/usr/local/bin/convert -modulate 110,100,100 Finally/".$_SESSION['USERSESSION']."/".$_SESSION['USERSESSION']." Finally/".$_SESSION['USERSESSION']."/".$_SESSION['USERSESSION']."");
    break;
case "14":
    exec("/usr/local/bin/convert -modulate 90,100,100 Finally/".$_SESSION['USERSESSION']."/".$_SESSION['USERSESSION']." Finally/".$_SESSION['USERSESSION']."/".$_SESSION['USERSESSION']."");
    break;      
case "15":
exec("/usr/local/bin/convert -modulate 100,110,100 Finally/".$_SESSION['USERSESSION']."/".$_SESSION['USERSESSION']." Finally/".$_SESSION['USERSESSION']."/".$_SESSION['USERSESSION']."");
    break;
case "16":
exec("/usr/local/bin/convert -modulate 100,90,100 Finally/".$_SESSION['USERSESSION']."/".$_SESSION['USERSESSION']." Finally/".$_SESSION['USERSESSION']."/".$_SESSION['USERSESSION']."");
    break;
case "17":
exec("/usr/local/bin/convert -modulate 100,100,110 Finally/".$_SESSION['USERSESSION']."/".$_SESSION['USERSESSION']." Finally/".$_SESSION['USERSESSION']."/".$_SESSION['USERSESSION']."");
    break;
case "18":
exec("/usr/local/bin/convert -modulate 100,100,90 Finally/".$_SESSION['USERSESSION']."/".$_SESSION['USERSESSION']." Finally/".$_SESSION['USERSESSION']."/".$_SESSION['USERSESSION']."");
    break;   
case "19":
    exec("/usr/local/bin/convert Finally/".$_SESSION['USERSESSION']."/".$_SESSION['USERSESSION']." -crop ".$vc."x".$vd."+".$va."+".$vb." Finally/".$_SESSION['USERSESSION']."/".$_SESSION['USERSESSION']."");
    break;
case "20":
    exec("/usr/local/bin/convert -blur ".$va."x".$vb." Finally/".$_SESSION['USERSESSION']."/".$_SESSION['USERSESSION']." Finally/".$_SESSION['USERSESSION']."/".$_SESSION['USERSESSION']."");
    break;   
case "21":
    exec("/usr/local/bin/convert -noise 3 Finally/".$_SESSION['USERSESSION']."/".$_SESSION['USERSESSION']." Finally/".$_SESSION['USERSESSION']."/".$_SESSION['USERSESSION']."");
    break;
case "22":
    exec("/usr/local/bin/convert -paint 3 Finally/".$_SESSION['USERSESSION']."/".$_SESSION['USERSESSION']." Finally/".$_SESSION['USERSESSION']."/".$_SESSION['USERSESSION']."");
    break;
case "23":
    exec("/usr/local/bin/convert -charcoal ".$va." Finally/".$_SESSION['USERSESSION']."/".$_SESSION['USERSESSION']." Finally/".$_SESSION['USERSESSION']."/".$_SESSION['USERSESSION']."");
    break;
case "24":
    exec("/usr/local/bin/convert -spread ".$va." Finally/".$_SESSION['USERSESSION']."/".$_SESSION['USERSESSION']." Finally/".$_SESSION['USERSESSION']."/".$_SESSION['USERSESSION']."");
    break;
case "25":
    exec("/usr/local/bin/convert -swirl ".$va." Finally/".$_SESSION['USERSESSION']."/".$_SESSION['USERSESSION']." Finally/".$_SESSION['USERSESSION']."/".$_SESSION['USERSESSION']."");
    break;
case "26":
    exec("/usr/local/bin/convert -font ./MX1GJM.TTF -fill beige -pointsize 25 -draw 'text ".$va.",".($vb+19)." \"'`echo ".$textCent."|iconv -f GB2312 -t UTF-8`'\"' -fill royalblue-pointsize 25 -draw 'text ".($va+1).",".($vb-1+19)." \"'`echo ".$textCent."|iconv -f GB2312 -t UTF-8`'\"' Finally/".$_SESSION['USERSESSION']."/".$_SESSION['USERSESSION']." Finally/".$_SESSION['USERSESSION']."/".$_SESSION['USERSESSION']."");
    break;
case "28":
    exec("/usr/local/bin/convert -colorspace gray-normalize -fill gray50 -colorize 70% Finally/".$_SESSION['USERSESSION']."/".$_SESSION['USERSESSION']." Finally/".$_SESSION['USERSESSION']."/".$_SESSION['USERSESSION']."");
    break;
case "29":
    exec("/usr/local/bin/convert -wave ".$va."x".$vb." Finally/".$_SESSION['USERSESSION']."/".$_SESSION['USERSESSION']." Finally/".$_SESSION['USERSESSION']."/".$_SESSION['USERSESSION']."");
    break;      
case "":
    $tmpimg=$_FILES['uploadimage']['name'];
    $filebase=strtolower(strrchr($_FILES['uploadimage']['name'],"."));
    if ($filebase!=".jpg" and $filebase!=".gif" and $filebase!=".png" and $filebase!=".jpeg" and $filebase!=".bmp")
    {
      $Success="0";
      $error="Ö»ÔêDíéÏŽ«íŒÏñžñêœÎÄŒt£¬èç.jpg¡¢.gif¡¢.pngμè¡£";
    }
    else
    {
      if (@move_uploaded_file($_FILES['uploadimage']['tmp_name'],"Finally/".$_SESSION['USERSESSION']."/".$tmpimg))
      {
      $Success="1";
      $img_info = getimagesize("Finally/".$_SESSION['USERSESSION']."/".$tmpimg);
      exec("/usr/local/bin/convert -draw 'image Over ".$va.",".$vb.",".$img_info.",".$img_info." Finally/".$_SESSION['USERSESSION']."/".$tmpimg."' Finally/".$_SESSION['USERSESSION']."/".$_SESSION['USERSESSION']." Finally/".$_SESSION['USERSESSION']."/".$_SESSION['USERSESSION']."");
      }
      else
      {
      $Success="0";
      $error="ÎÄŒtéÏŽ«ê§°ü£¬Çëóëliutiansi@gamil.comáaÏμ¡£";
      }
    }
    break;
}

if ($optype=="19" || $optype=="26")
{
echo "{\n";
echo "\"item\": [\n";
echo "            {\n";
echo "            \"result\": \"1\",\n";
echo "            \"link\": \"2\"\n";
echo "             }\n";
echo "          ]\n";
echo "}\n";
}
else if ($optype=="")
{
if ($Success=="1")
{
    echo "<script language='javascript'>\n";
    echo "window.top.opener.document.getElementById(\"Finallyimg\").src='Finally/".$_SESSION['USERSESSION']."/".$_SESSION['USERSESSION']."?".time()."';\n";
    echo "top.opener=null;top.close();\n";
    echo "</script>\n";
}
else
{
    echo "<script language='javascript'>\n";
    echo "alert(\"$error\")";
    echo "</script>\n";      
}
}
else
{
      $Finally_info=explode(" ",exec("identify Finally/".$_SESSION['USERSESSION']."/".$_SESSION['USERSESSION']));
      echo "<img src=Finally/".$_SESSION['USERSESSION']."/".$_SESSION['USERSESSION']."?".time()."id=\"Finallyimg\" onload=\"window.status='图像基本信息【文件格式:".$Finally_info."   分辨率:".$Finally_info."   文件大小:".round(($Finally_info/1024),2)."k】
'\">";
}
?>

mz198424 发表于 2010-01-13 21:43

支持原创。。。

james.liu 发表于 2010-01-13 22:18

超级switch

优化下把,,太难看了。

phpcool 发表于 2010-01-13 22:57

哈哈,几年前写的东东了,改天整理成数据库来存储。

mz198424 发表于 2010-01-14 22:08

原帖由 phpcool 于 2010-1-13 22:57 发表 http://bbs3.chinaunix.net/images/common/back.gif
哈哈,几年前写的东东了,改天整理成数据库来存储。

改完一直再发上来啊

renxiao2003 发表于 2010-01-14 23:30

厉害啊。

zhugcx 发表于 2010-01-18 08:49

任何操作都没有效果,
linux 下 firefox

liexusong 发表于 2010-01-18 09:56

还不错!

phpcool 发表于 2010-01-18 10:06

回复 #7 zhugcx 的帖子

你再试试,刚服务器在升级。不好意思:)

strawman919 发表于 2010-03-06 09:47

刚才试了一下 不好使。
页: [1] 2
查看完整版本: 在线图片处理平台[原创]