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中在数据库中保存Checkbox数据(1)
Oct 09 PHP
php 数组二分法查找函数代码
Feb 16 PHP
php简单的留言板与回复功能具体实现
Feb 19 PHP
Parse正式发布开源PHP SDK
Aug 11 PHP
php中实现记住密码下次自动登录的例子
Nov 06 PHP
php生成excel列名超过26列大于Z时的解决方法
Dec 29 PHP
PHP处理数组和XML之间的互相转换
Jun 02 PHP
PHP使用PHPExcel实现批量上传到数据库的方法
Jun 08 PHP
php简单构造json多维数组的方法示例
Jun 08 PHP
php把字符串指定字符分割成数组的方法
Mar 12 PHP
PHP使用CURL实现下载文件功能示例
Jun 03 PHP
PHP7 新增功能
Mar 09 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
Syphon 使用方法
2021/03/03 冲泡冲煮
如何写php程序?
2006/12/08 PHP
thinkphp多表查询两表有重复相同字段的完美解决方法
2016/09/22 PHP
jquery中的 $(&quot;#jb51&quot;)与document.getElementById(&quot;jb51&quot;) 的区别
2011/07/26 Javascript
JS判断变量是否为空判断是否null
2014/07/25 Javascript
js实现input框文字动态变换显示效果
2015/08/19 Javascript
javascript之Array 数组对象详解
2016/06/07 Javascript
JavaScript中误用/g导致的正则test()无法正确重复执行的解决方案
2016/07/27 Javascript
基于jQuery实现表格内容的筛选功能
2016/08/21 Javascript
jquery datatable服务端分页
2016/08/31 Javascript
js实现年月日表单三级联动
2020/04/17 Javascript
jQuery插件HighCharts实现的2D回归直线散点效果示例【附demo源码下载】
2017/03/09 Javascript
Angular.JS中指令ng-if、ng-show/ng-hide和ng-switch的使用教程
2017/05/07 Javascript
js CSS3实现卡牌旋转切换效果
2017/07/04 Javascript
原生js jquery ajax请求以及jsonp的调用方法
2017/08/04 jQuery
Echarts基本用法_动力节点Java学院整理
2017/08/11 Javascript
自适应布局meta标签中viewport、content、width、initial-scale、minimum-scale、maximum-scale总结
2017/08/18 Javascript
基于mpvue搭建微信小程序项目框架的教程详解
2019/04/10 Javascript
ES6中Set和Map用法实例详解
2020/03/02 Javascript
Vue Router的手写实现方法实现
2020/03/02 Javascript
javascript局部自定义鼠标右键菜单
2020/12/08 Javascript
用Python中的wxPython实现最基本的浏览器功能
2015/04/14 Python
利用Fn.py库在Python中进行函数式编程
2015/04/22 Python
Python输出汉字字库及将文字转换为图片的方法
2016/06/04 Python
python多进程间通信代码实例
2019/09/30 Python
解决pycharm启动后总是不停的updating indices...indexing的问题
2019/11/27 Python
如何提高python 中for循环的效率
2020/04/15 Python
Python CSS选择器爬取京东网商品信息过程解析
2020/06/01 Python
Sublime Text3最新激活注册码分享适用2020最新版 亲测可用
2020/11/12 Python
澳大利亚购买最佳炊具品牌网站:Cookware Brands
2019/02/16 全球购物
安全演讲稿开场白
2014/08/25 职场文书
学习三严三实心得体会
2014/10/13 职场文书
自我检讨书范文
2015/01/28 职场文书
离婚代理词范文
2015/05/23 职场文书
入党积极分子半年考察意见
2015/06/02 职场文书
SQL语句中EXISTS的详细用法大全
2022/06/25 MySQL