在线图片处理平台[原创]
原文: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】
'\">";
}
?>
支持原创。。。 超级switch
优化下把,,太难看了。 哈哈,几年前写的东东了,改天整理成数据库来存储。 原帖由 phpcool 于 2010-1-13 22:57 发表 http://bbs3.chinaunix.net/images/common/back.gif
哈哈,几年前写的东东了,改天整理成数据库来存储。
改完一直再发上来啊 厉害啊。 任何操作都没有效果,
linux 下 firefox 还不错!
回复 #7 zhugcx 的帖子
你再试试,刚服务器在升级。不好意思:) 刚才试了一下 不好使。
页:
[1]
2