知识大全 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

相关参考

知识大全 计算php页面运行时间的函数介绍

本篇文章是对计算php页面运行时间的函数进行了详细的分析介绍需要的朋友参考下   一个计算php页面运行时间的函数复制代码代码如下:cha138/Article/program/P

知识大全 php获取url参数程序代码总结

  parse_url函数  我们先来了解一下parse_url函数官方解决  说明  mixedparse_url(string$url[int$ponent=])  本函数解析一个URL并返回一个

知识大全 php5.5新数组函数array

  PHP发布了其中增加了一个新的数组函数array_column感觉不错的!但是低版本PHP要使用得自己实现参考地址复制代码代码如下:if(!function_exists(array_column

知识大全 php中使用函数代替require操作

  为了减少重复代码常常需要包含heade和footer我们最长使用的操作就是require或者reqire_once等代码但是我们可以用另一种方式来实现这种包含写一个函数比如printHeader如

知识大全 解析php下载远程图片函数 可伪造来路

复制代码代码如下:<?phpfunctionDownImageKeep($gurl$rfurl$filename$gcookie=""$JumpCount=$maxtime=)$urlinfos

知识大全 关于php 接口问题(php接口主要也就是运用curl,curl函数)

本篇文章是对php中的接口问题(php接口主要也就是运用curlcurl函数)进行了详细的分析介绍需要的朋友参考下   接口问题php调用接口最主要的就是使用curl抓取信息复制代码代码如下

知识大全 php的数组与字符串的转换函数整理汇总

以下是对php中的数组与字符串的转换函数进行了详细的整理汇总需要的朋友可以参考下   将一个字符串转化为数组str_split()用于将一个字符串转化为数组语法复制代码代码如下:str_sp

知识大全 php下保存远程图片到本地的办法

今天在整理资料的时候发现以前找到的一个函数通过这个函数我们就可以实现上面的功能主要函数  复制代码代码如下:  functionGrabImage($url$filename=)if($url==)r

知识大全 php记录页面代码执行时间

  在php中要记录页面中代码执行时间我们只使用microtime函数生成时间然后在最后把开始与结束时间相减即可解决了   核心代码 代码如下   $t=microtim

知识大全 php删除非空目录自定义函数

  //循环删除目录和文件函数代码如下   functiondelDirAndFile($dirName)if($handle=opendir(“$dirName”))while(false