php版图片加边框和水印
疯子的紫梦
posted @ 2009年11月29日 06:18
in php
, 2614 阅读
<form action=read.php method=post> 图片缩小为:<select name=picsize><option value=0.25>25%</option><option value=0.5 selected>50%</option></select><br> 边框外线:<select name=outbordercolor><option value=0>none</option><option value=white selected>white</option><option value=black>black</option><option value=gray>gray</option></select> 边框颜色:<select name=bordercolor><option value=white>white</option><option value=black selected>black</option><option value=gray>gray</option></select> 边框宽度:<select name=bordersize><option value=1>1</option><option value=2>2</option><option value=3>3</option><option value=4>4</option><option value=5>5</option><option value=6 selected>6</option></select> 边框内线:<select name=inbordercolor><option value=0>none</option><option value=white selected>white</option><option value=black>black</option><option value=gray>gray</option></select><br> 签名颜色:<select name=inkcolor><option value=white>white</option><option value=black>black</option><option value=gray>gray</option></select> 签名内容:<input type=text name=ink><br> <input type=submit value=开始转换> </form> read.php <?php $picsize=$_POST["picsize"]; $bordercolor=$_POST["bordercolor"]; $inbordercolor=$_POST["inbordercolor"]; $outbordercolor=$_POST["outbordercolor"]; $bordersize=$_POST["bordersize"]; $inkcolor=$_POST["inkcolor"]; $ink=$_POST["ink"]; if($handle = opendir('./img')) { while (false !== ($file = readdir($handle))) { if(strpos($file,".jpg")!==false||strpos($file,".JPG")!==false) { $image = imagecreatefromjpeg('./img/'.$file); $width = ImageSx($image); $height = ImageSy($image); $x = floor($width*$picsize); $y = floor($height*$picsize); $dst = ImageCreateTrueColor($x,$y); Imagecopyresampled($dst,$image,0,0,0,0,$x,$y,$width,$height); $white = ImageColorAllocate($dst,0xFF,0xFF,0xFF); $black = ImageColorAllocate($dst,0x00,0x00,0x00); $gray = ImageColorAllocate($dst,0x88,0x88,0x88); $j=0; if($outbordercolor!="0") ImageRectangle($dst,$j,$j,$x-$j-1,$y-$j++-1,$$outbordercolor); for($i=0;$i<$bordersize+$j;$i++) ImageRectangle($dst,$i+$j,$i+$j,$x-$i-$j-1,$y-$i-$j-1,$$bordercolor); if($inbordercolor!="0") ImageRectangle($dst,$i+$j,$i+$j,$x-$i-$j-1,$y-$i-$j-1,$$inbordercolor); ImageTTFText($dst,20,0,$x-strlen($ink)*10-10,$y-30,$$inkcolor,'Mistral',$ink); imagejpeg($dst,'./img2/'.$file); echo "$file"."已转换<br>"; } } closedir($handle); } ?>