知识大全 php对图像的各种处理函数代码小结

Posted

篇首语:人生处万类,知识最为贤。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 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 常量对应 索引 是文本字符串 内容为“ 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);

cha138/Article/program/PHP/201311/21300

相关参考