您现在的位置是:首页 >

函数的概念总结 php对图像的各种处理函数代码小结

火烧 2022-05-06 09:03:09 1079
h 对图像的各种处理函数代码小结   一 创建图片资源  imagecreatetruecolor width height imagecreatefromgif 图片名称 imagecreatef

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);

函数的概念总结 php对图像的各种处理函数代码小结

  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  
永远跟党走
  • 如果你觉得本站很棒,可以通过扫码支付打赏哦!

    • 微信收款码
    • 支付宝收款码