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 相关文章推荐
PHP 超链接 抓取实现代码
Jun 29 PHP
Warning: session_destroy() : Trying to destroy uninitialized sessionq错误
Jun 16 PHP
IIS下PHP的三种配置方式对比
Nov 20 PHP
php使用ereg验证文件上传的方法
Dec 16 PHP
php打乱数组二维数组多维数组的简单实例
Jun 17 PHP
php微信开发之带参数二维码的使用
Aug 03 PHP
PHP实现的网站目录扫描索引工具
Sep 08 PHP
thinkphp利用模型通用数据编辑添加和删除的实例代码
Nov 20 PHP
PHP实现随机数字、字母的验证码功能
Aug 01 PHP
PHP实现图片压缩
Sep 09 PHP
统计PHP目录中的文件数方法
Mar 05 PHP
用php定义一个数组最简单的方法
Oct 04 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
收音机玩机评测 406 篇视频合集
2020/03/11 无线电
PHP+DBM的同学录程序(5)
2006/10/09 PHP
Yii2中DropDownList简单用法示例
2016/07/18 PHP
php文件上传及下载附带显示文件及目录功能
2017/04/27 PHP
Prototype 学习 工具函数学习($w,$F方法)
2009/07/12 Javascript
JS分页控件 可用于无刷新分页
2013/07/23 Javascript
Javascript中string转date示例代码
2013/11/01 Javascript
jQuery视差滚动效果网页实现方法经验总结
2016/09/29 Javascript
JS公共小方法之判断对象是否为domElement的实例
2016/11/25 Javascript
对Vue beforeRouteEnter 的next执行时机详解
2018/08/25 Javascript
如何使用less实现随机下雪动画详解
2019/01/02 Javascript
微信小程序实现蒙版弹出窗功能
2019/09/17 Javascript
微信小程序可滑动周日历组件使用详解
2019/10/21 Javascript
node+multer实现图片上传的示例代码
2020/02/18 Javascript
JavaScript 函数用法详解【函数定义、参数、绑定、作用域、闭包等】
2020/05/12 Javascript
微信小程序上传帖子的实例代码(含有文字图片的微信验证)
2020/07/11 Javascript
vue-calendar-component 封装多日期选择组件的实例代码
2020/12/04 Vue.js
JS中锚点链接点击平滑滚动并自由调整到顶部位置
2021/02/06 Javascript
[01:01:51]EG vs VG Supermajor小组赛B组 BO3 第二场 6.2
2018/06/03 DOTA
对python GUI实现完美进度条的示例详解
2018/12/13 Python
Python的垃圾回收机制详解
2019/08/28 Python
python函数修饰符@的使用方法解析
2019/09/02 Python
Python判断三段线能否构成三角形的代码
2020/04/12 Python
关于django python manage.py startapp 应用名出错异常原因解析
2020/12/15 Python
维多利亚的秘密官方旗舰店:VICTORIA’S SECRET
2018/04/02 全球购物
学前教育毕业生自荐信
2013/10/29 职场文书
管道维修工岗位职责
2013/12/27 职场文书
阅兵口号
2014/06/19 职场文书
寻找最美家庭活动方案
2014/08/20 职场文书
2015年少先队活动总结
2015/03/25 职场文书
学校青年志愿者活动总结
2015/05/06 职场文书
2015年幼儿园安全工作总结
2015/05/12 职场文书
被委托人身份证明
2015/08/07 职场文书
python for循环赋值问题
2021/06/03 Python
《黑岩★★射手 DAWN FALL》BD发售宣传CM公开
2022/04/04 日漫
mysql的单列多值存储实例详解
2022/04/05 MySQL