php图像处理函数大全(推荐收藏)


Posted in PHP onJuly 11, 2013

一、创建图片资源
imagecreatetruecolor(width,height);
imagecreatefromgif(图片名称);
imagecreatefrompng(图片名称);
imagecreatefromjpeg(图片名称);画出各种图像 imagegif(图片资源,保存路径);
imagepng()
imagejpeg();

二、获取图片属性
imagesx(res//宽度
imagesy(res//高度
getimagesize(文件路径)
返回一个具有四个单元的数组。索引 0 包含图像宽度的像素值,索引 1 包含图像高度的像素值。索引 2 是图像类型的标记:1 = GIF,2 = JPG,3 = PNG,4 = SWF,5 = PSD,6 = BMP,7 = TIFF(intel byte order),8 = TIFF(motorola byte order),9 = JPC,10 = JP2,11 = JPX,12 = JB2,13 = SWC,14 = IFF,15 = WBMP,16 = XBM。这些标记与 PHP 4.3.0 新加的 IMAGETYPE 常量对应。索引 3 是文本字符串,内容为“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");

<?PHP
 /**
 * 图片锐化处理
 */
 $red= imagecolorallocate($img, 255, 0, 0); imageline($img, 0, 0, 100, 100, $red);
 imageellipse($img, 200, 100, 100, 100, $red);
 imagegif($img, "./images/map2.gif");
 imagedestroy($img);
 图片普通缩放
 代码如下:
 $filename="./images/hee.jpg";
 $per=0.3;
 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,0, 0,0, 0,$n_w, $n_h, $width, $height);
 //图像输出新图片、另存为
 imagejpeg($new, "./images/hee2.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, 0, 0, 0, 0, $width, $height, $s_w, $s_h);
 imagejpeg($new, $newfile);
 imagedestroy($new);
 imagedestroy($img);
 }
 thumn("images/hee.jpg", 200, 200, "./images/hee3.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 >=0 && $otst < imagecolorstotal($img)){//判断索引色
 $tran=imagecolorsforindex($img, $otsc);//索引颜色值
 $newt=imagecolorallocate($new, $tran["red"], $tran["green"], $tran["blue"]);
 imagefill($new, 0, 0, $newt);
 imagecolortransparent($new, $newt);
 }
 imagecopyresized($new, $img, 0, 0, 0, 0, $width, $height, $s_w, $s_h);
 imagegif($new, $newfile);
 imagedestroy($new);
 imagedestroy($img);
 }
 thumn("images/map.gif", 200, 200, "./images/map3.gif");

图片裁剪
<?php
/**
* 图片裁剪处理
* edit by 3water.com
*/
function cut($background, $cut_x, $cut_y, $cut_width, $cut_height, $location){
$back=imagecreatefromjpeg($background);
$new=imagecreatetruecolor($cut_width, $cut_height);
imagecopyresampled($new, $back, 0, 0, $cut_x, $cut_y, $cut_width, $cut_height,$cut_width,$cut_height);
imagejpeg($new, $location);
imagedestroy($new);
imagedestroy($back);
}
cut("./images/hee.jpg", 440, 140, 117, 112, "./images/hee5.jpg");
?>

图片加水印 文字水印
<?PHP
 /**
 * 
 * 图片添加文字水印
 */ function mark_text($background, $text, $x, $y){
 $back=imagecreatefromjpeg($background);
 $color=imagecolorallocate($back, 0, 255, 0);
 imagettftext($back, 20, 0, $x, $y, $color, "simkai.ttf", $text);
 imagejpeg($back, "./images/hee7.jpg");
 imagedestroy($back);
 }
 mark_text("./images/hee.jpg", "细说PHP", 150, 250);
 //图片水印
 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, 0, 0, $w_w, $w_h);
 imagejpeg($back,"./images/hee8.jpg");
 imagedestroy($back);
 imagedestroy($water);
 }
 mark_pic("./images/hee.jpg", "./images/gaolf.gif", 50, 200);

图片旋转
<?PHP
 /**
 * 图片旋转
 */
 $back=imagecreatefromjpeg("./images/hee.jpg"); $new=imagerotate($back, 45, 0);
 imagejpeg($new, "./images/hee9.jpg");
 ?>

图片水平翻转垂直翻转
<?php
 /**
 * 图片水平翻转 垂直翻转
 */
 function turn_y($background, $newfile){
 $back=imagecreatefromjpeg($background);
 $width=imagesx($back);
 $height=imagesy($back);
 $new=imagecreatetruecolor($width, $height);
 for($x=0; $x < $width; $x++){
 imagecopy($new, $back, $width-$x-1, 0, $x, 0, 1, $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=0; $y < $height; $y++){
 imagecopy($new, $back,0, $height-$y-1, 0, $y, $width, 1);
 }
 imagejpeg($new, $newfile);
 imagedestroy($back);
 imagedestroy($new);
 }
 turn_y("./images/hee.jpg", "./images/hee11.jpg");
 turn_x("./images/hee.jpg", "./images/hee12.jpg");
 ?>
PHP 相关文章推荐
Oracle Faq(Oracle的版本)
Oct 09 PHP
PHP 杂谈《重构-改善既有代码的设计》之五 简化函数调用
May 07 PHP
php中检查文件或目录是否存在的代码小结
Oct 22 PHP
关于php程序报date()警告的处理(date_default_timezone_set)
Oct 22 PHP
php使用curl发送json格式数据实例
Dec 17 PHP
php中filter函数验证、过滤用户输入的数据
Jan 13 PHP
php计算当前程序执行时间示例
Apr 24 PHP
html静态页面调用php文件的方法
Nov 13 PHP
PHP图形计数器程序显示网站用户浏览量
Jul 20 PHP
laravel中的错误与日志用法详解
Jul 26 PHP
php加密解密字符串示例
Oct 13 PHP
php compact 通过变量创建数组
Nov 15 PHP
PHP 获取远程文件大小的3种解决方法
Jul 11 #PHP
深入Nginx + PHP 缓存详解
Jul 11 #PHP
基于PHP中的常用函数回顾
Jul 11 #PHP
PHP 获取文件权限函数介绍
Jul 11 #PHP
浅析php学习的路线图
Jul 10 #PHP
php对图像的各种处理函数代码小结
Jul 08 #PHP
php/js获取客户端mac地址的实现代码
Jul 08 #PHP
You might like
ThinkPHP多语言支持与多模板支持概述
2014/08/22 PHP
PHP中常见的缓存技术实例分析
2015/09/23 PHP
利用PHP如何实现Socket服务器
2015/09/23 PHP
详解WordPress中给链接添加查询字符串的方法
2015/12/18 PHP
javascript笔试题目附答案@20081025_jb51.net
2008/10/26 Javascript
JQuery实现倒计时按钮的实现代码
2012/03/23 Javascript
javascript中apply和call方法的作用及区别说明
2014/02/14 Javascript
跟我学Nodejs(二)--- Node.js事件模块
2014/05/21 NodeJs
JavaScript中对象property的读取和写入方法介绍
2014/12/30 Javascript
JS实现浏览器状态栏文字闪烁效果的方法
2015/10/27 Javascript
JavaScript实现获取某个元素相邻兄弟节点的prev与next方法
2016/01/25 Javascript
js学习笔记之事件处理模型
2016/10/31 Javascript
Node.js中.pfx后缀文件的处理方法
2017/03/10 Javascript
用图片替换checkbox原始样式并实现同样的功能
2018/11/15 Javascript
js字符串倒序的实例代码
2018/11/30 Javascript
3分钟读懂移动端rem使用方法(推荐)
2019/05/06 Javascript
[15:39]教你分分钟做大人:龙骑士
2014/10/30 DOTA
[02:51]DOTA2 2015国际邀请赛中国区预选赛第一日战报
2015/05/27 DOTA
Python 实现「食行生鲜」签到领积分功能
2018/09/26 Python
django model object序列化实例
2020/03/13 Python
Python decorator拦截器代码实例解析
2020/04/04 Python
Django haystack实现全文搜索代码示例
2020/11/28 Python
Python应用自动化部署工具Fabric原理及使用解析
2020/11/30 Python
python asyncio 协程库的使用
2021/01/21 Python
获取邓白氏信用报告:Dun & Bradstreet
2019/01/22 全球购物
Elizabeth Gage官网:英国最好的珠宝设计之一
2020/09/26 全球购物
Java方面的关于数组和继承的笔面试题
2015/09/18 面试题
给领导的检讨书
2014/02/16 职场文书
网站创业计划书
2014/04/30 职场文书
2015年绩效考核工作总结
2015/05/23 职场文书
2015年校本培训工作总结
2015/07/24 职场文书
工作后的感想
2015/08/07 职场文书
小学班级标语口号大全
2015/12/26 职场文书
python+opencv实现目标跟踪过程
2022/06/21 Python
如何解决flex文本溢出问题小结
2022/07/15 HTML / CSS
Nginx使用ngx_http_upstream_module实现负载均衡功能示例
2022/08/05 Servers