函数的概念总结 php对图像的各种处理函数代码小结
php对图像的各种处理函数代码小结
一 创建图片资源
imagecreatetruecolor(width height); imagecreatefromgif(图片名称); imagecreatefrompng(图片名称); imagecreatefromjpeg(图片名称);画出各种图像 imagegif(图片资源 保存路径); imagepng() imagejpeg();
二 获取图片属性
imagesx(res//宽度 imagesy(res//高度 getimagesize(文件路径) 返回一个具有四个单 元的数组 索引 包含图像宽度的像素值 索引 包含图像高度的像素值 索引 是图像类型的标记 = GIF = JPG = PNG = SWF = PSD = BMP = TIFF(intel byte order) = TIFF(motorola byte order) = JPC = JP = JPX = JB = SWC = IFF = WBMP = XBM 这些标记与 PHP 新加的 IMAGETYPE 常量对应 索引 是文本字符串 内容为“height="yyy" width=xxx” 可直接用于 IMG 标记 销毁图像资源 imagedestroy(图片资源);
三 透明处理
PNG jpeg透明色都正常 只有gif不正常
imagecolortransparent(resource image [ int color])//将某个颜色设置成透明色 imagecolorstotal() imagecolorforindex();
四 图片的裁剪
imagecopyresized() imagecopyresampled();
五 加水印(文字 图片)
字符串编码转换string iconv ( string $in_charset string $out_charset string $str )
六 图片旋转
imagerotate();//制定角度的图片翻转
七 图片的翻转
沿X轴 沿Y轴翻转
八 锐化
imagecolorsforindex()
imagecolorat()
在图片上画图形 $img=imagecreatefromgif(" /images/map gif");
复制代码 代码如下: $red= imagecolorallocate($img ); imageline($img $red); imageellipse($img $red); imagegif($img " /images/map gif"); imagedestroy($img);图片普通缩放
复制代码 代码如下: $filename=" /images/hee jpg"; $per= ; list($width $height)=getimagesize($filename); $n_w=$width*$per; $n_h=$width*$per;$new=imagecreatetruecolor($n_w $n_h);
$img=imagecreatefromjpeg($filename); //拷贝部分图像并调整
imagecopyresized($new $img $n_w $n_h $width $height); //图像输出新图片 另存为
imagejpeg($new " /images/hee jpg");
imagedestroy($new); imagedestroy($img);
图片等比例缩放 没处理透明色
复制代码 代码如下: function thumn($background $width $height $newfile) { list($s_w $s_h)=getimagesize($background);//获取原图片高度 宽度if ($width && ($s_w < $s_h)) { $width = ($height / $s_h) * $s_w; } else { $height = ($width / $s_w) * $s_h; }
$new=imagecreatetruecolor($width $height);
$img=imagecreatefromjpeg($background);
imagecopyresampled($new $img $width $height $s_w $s_h);
imagejpeg($new $newfile);
imagedestroy($new); imagedestroy($img); }
thumn("images/hee jpg" " /images/hee jpg");
gif透明色处理
复制代码 代码如下: function thumn($background $width $height $newfile) { list($s_w $s_h)=getimagesize($background);if ($width && ($s_w < $s_h)) { $width = ($height / $s_h) * $s_w; } else { $height = ($width / $s_w) * $s_h; }
$new=imagecreatetruecolor($width $height);
$img=imagecreatefromgif($background);
$otsc=imagecolortransparent($img); if($otsc >= && $otst < imagecolorstotal($img)){//判断索引色 $tran=imagecolorsforindex($img $otsc);//索引颜色值
$newt=imagecolorallocate($new $tran["red"] $tran["green"] $tran["blue"]);
imagefill($new $newt);
imagecolortransparent($new $newt); }
imagecopyresized($new $img $width $height $s_w $s_h);
imagegif($new $newfile);

imagedestroy($new); imagedestroy($img); }
thumn("images/map gif" " /images/map gif");
图片裁剪
复制代码 代码如下: function cut($background $cut_x $cut_y $cut_width $cut_height $location){$back=imagecreatefromjpeg($background);
$new=imagecreatetruecolor($cut_width $cut_height);
imagecopyresampled($new $back $cut_x $cut_y $cut_width $cut_height $cut_width $cut_height);
imagejpeg($new $location);
imagedestroy($new); imagedestroy($back); }
cut(" /images/hee jpg" " /images/hee jpg");
图片加水印
文字水印
复制代码 代码如下: function mark_text($background $text $x $y){ $back=imagecreatefromjpeg($background);$color=imagecolorallocate($back );
imagettftext($back $x $y $color "simkai ttf" $text);
imagejpeg($back " /images/hee jpg");
imagedestroy($back); }
mark_text(" /images/hee jpg" "细说PHP" );
//图片水印 function mark_pic($background $waterpic $x $y){ $back=imagecreatefromjpeg($background); $water=imagecreatefromgif($waterpic); $w_w=imagesx($water); $w_h=imagesy($water); imagecopy($back $water $x $y $w_w $w_h); imagejpeg($back " /images/hee jpg"); imagedestroy($back); imagedestroy($water); } mark_pic(" /images/hee jpg" " /images/gaolf gif" );
图片旋转
复制代码 代码如下: $back=imagecreatefromjpeg(" /images/hee jpg"); $new=imagerotate($back ); imagejpeg($new " /images/hee jpg");图片水平翻转垂直翻转
复制代码 代码如下: function turn_y($background $newfile){ $back=imagecreatefromjpeg($background);$width=imagesx($back); $height=imagesy($back);
$new=imagecreatetruecolor($width $height);
for($x= ; $x < $width; $x++){ imagecopy($new $back $width $x $x $height); }
imagejpeg($new $newfile);
imagedestroy($back); imagedestroy($new); }
function turn_x($background $newfile){ $back=imagecreatefromjpeg($background);
$width=imagesx($back); $height=imagesy($back);
$new=imagecreatetruecolor($width $height);
for($y= ; $y < $height; $y++){ imagecopy($new $back $height $y $y $width ); }
imagejpeg($new $newfile);
imagedestroy($back); imagedestroy($new); }
turn_y(" /images/hee jpg" " /images/hee jpg"); turn_x(" /images/hee jpg" " /images/hee jpg");
图片锐化
复制代码 代码如下:function sharp($background $degree $save){ $back=imagecreatefromjpeg($background);
$b_x=imagesx($back); $b_y=imagesy($back);
$dst=imagecreatefromjpeg($background); for($i= ; $i<$b_x; $i++){ for($j= ; $j<$b_y; $j++){ $b_clr =imagecolorsforindex($back imagecolorat($back $i $j ));前一个像素颜色数组 $b_clr =imagecolorsforindex($back imagecolorat($back $i $j));取出当前颜色数组
$r=intval($b_clr ["red"]+$degree*($b_clr ["red"] $b_clr ["red"]));加深 $g=intval($b_clr ["green"]+$degree*($b_clr ["green"] $b_clr ["green"])); $b=intval($b_clr ["blue"]+$degree*($b_clr ["blue"] $b_clr ["blue"]));
$r=min( max($r ));//限制r范围在 之间 $g=min( max($g )); $b=min( max($b ));
if(($d_clr=imagecolorexact($dst $r $g $b))== ){//等于 不在颜色范围内 $d_clr=Imagecolorallocate($dst $r $g $b);//创建一个颜色 }
imagesetpixel($dst $i $j $d_clr); }
} imagejpeg($dst $save); imagedestroy($back); imagedestroy($dst); }
lishixinzhi/Article/program/PHP/201311/21300