php下用GD生成生成缩略图的两个选择和区别


Posted in PHP onApril 17, 2007

PHP的GD扩展提供了两个函数来缩放图像:

ImageCopyResized(dest, src, dx, dy, sx, sy, dw, dh, sw, sh);
ImageCopyResampled(dest, src, dx, dy, sx, sy, dw, dh, sw, sh);

ImageCopyResized( )函数在所有GD版本中有效,但其缩放图像的算法比较粗糙,可能会导致图像边缘的锯齿。GD 2.x中新增了一个ImageCopyResampled( )函数,其像素插值算法得到的图像边缘比较平滑(但该函数的速度比ImageCopyResized()慢)。

来看一个例子,我们将这个图缩小四倍:
<?php

 $src 

ImageCreateFromJPEG('php.jpg');

 

$width ImageSx($src);
 
$height ImageSy($src);
 
$x $width/2$y $height/2;
 
$dst ImageCreateTrueColor($x,$y);
 
ImageCopyResized($dst,$src,0,0,0,0,$x,$y,$width,$height);
 
//ImageCopyResampled($dst,$src,0,0,0,0,$x,$y,$width,$height);

 

header('Content-Type: image/jpeg');
 
ImageJPEG($dst,'',100);
?>

原图:
php下用GD生成生成缩略图的两个选择和区别

使用

ImageCopyResized()函数生成的结果:
php下用GD生成生成缩略图的两个选择和区别

使用ImageCopyResampled()函数生成的结果:

php下用GD生成生成缩略图的两个选择和区别

很明显可以看到两个函数生成的图像效果是不一样的,ImageCopyResampled()函数生成的结果比较平滑,效果较好。

顺便贴一个效果,用ASCII表示图像。ImageColorAt()有一个很有趣的用处,它可以循环检查
图像中的每一个像素的颜色,然后对该颜色数据进行操作。
源代码:
<html>
<body bgcolor="#000000" style="line-height:6pt"> <?php 
 $im = imagecreatefromjpeg('test1.jpg'); 
 $dx = imagesx($im); 
 $dy = imagesy($im); 
 for($y = 0; $y < $dy; $y++) { 
     for($x=0; $x < $dx; $x++) { 
         $col = imagecolorat($im, $x, $y); 
         $rgb = imagecolorsforindex($im,$col); 
         printf('<font color=#%02x%02x%02x>*</font>', 
                 $rgb['red'],$rgb['green'],$rgb['blue']); 
     } 
     echo "<br>\n"; 
 } 
 imagedestroy($im); 
?> 
</body></html>

php下用GD生成生成缩略图的两个选择和区别

很有趣吧,呵呵..

PHP 相关文章推荐
PHP array 的加法操作代码
Jul 24 PHP
PHP冒泡排序算法代码详细解读
Jul 17 PHP
PDO防注入原理分析以及注意事项
Feb 25 PHP
php获取指定范围内最接近数的方法
Jun 02 PHP
php实现比较两个文件夹异同的方法
Jun 18 PHP
WordPress中对访客评论功能的一些优化方法
Nov 24 PHP
smarty高级特性之过滤器的使用方法
Dec 25 PHP
Yii2 输出xml格式数据的方法
May 03 PHP
PHP云打印类完整示例
Oct 15 PHP
ajax+php实现无刷新验证手机号的实例
Dec 22 PHP
PHP实现微信对账单处理
Oct 01 PHP
PHP实现支持CURL字符串证书传输的方法
Mar 23 PHP
15种PHP Encoder的比较
Apr 17 #PHP
dede全站URL静态化改造[070414更正]
Apr 17 #PHP
安装PHP可能遇到的问题“无法载入mysql扩展” 的解决方法
Apr 16 #PHP
给apache2.2加上mod_encoding模块後 php5.2.0 处理url出现bug
Apr 12 #PHP
Linux下ZendOptimizer的安装与配置方法
Apr 12 #PHP
PHP 中英文混合排版中处理字符串常用的函数
Apr 12 #PHP
PHP字符转义相关函数小结(php下的转义字符串)
Apr 12 #PHP
You might like
PHP使用正则表达式获取微博中的话题和对象名
2015/07/18 PHP
php生成Android客户端扫描可登录的二维码
2016/05/13 PHP
php压缩文件夹最新版
2018/07/18 PHP
php将字符串转换为数组实例讲解
2020/05/05 PHP
JS 参数传递的实际应用代码分析
2009/09/13 Javascript
js中关于String对象的replace使用详解
2011/05/24 Javascript
Javascript中的this绑定介绍
2011/09/22 Javascript
jquery struts 验证唯一标识(公用方法)
2013/03/27 Javascript
使用javascript控制cookie显示和隐藏背景图
2014/02/12 Javascript
js或jquery实现页面打印可局部打印
2014/03/27 Javascript
javascript中call apply 与 bind方法详解
2016/03/10 Javascript
AngularJS入门(用ng-repeat指令实现循环输出
2016/05/05 Javascript
JS中split()用法(将字符串按指定符号分割成数组)
2016/10/24 Javascript
Three.js基础部分学习
2017/01/08 Javascript
JS获得多个同name 的input输入框的值的实现方法
2017/01/09 Javascript
Vue2.0+ElementUI实现表格翻页的实例
2017/10/23 Javascript
原生js实现拖拽功能基本思路详解
2018/04/18 Javascript
对Vue2 自定义全局指令Vue.directive和指令的生命周期介绍
2018/08/30 Javascript
layui清空,重置表单数据的实例
2019/09/12 Javascript
Python之re操作方法(详解)
2017/06/14 Python
TensorFlow损失函数专题详解
2018/04/26 Python
使用python进行文本预处理和提取特征的实例
2018/06/05 Python
OpenCV-Python 摄像头实时检测人脸代码实例
2019/04/30 Python
Python学习笔记之pandas索引列、过滤、分组、求和功能示例
2019/06/03 Python
matplotlib 多个图像共用一个colorbar的实现示例
2020/09/10 Python
如何利用Python写个坦克大战
2020/11/18 Python
Perfumetrader荷兰:香水、化妆品和护肤品在线商店
2017/09/15 全球购物
巴西箱包、背包、钱包和旅行配件购物网站:Inovathi
2019/12/14 全球购物
JBL加拿大官方商店:扬声器、耳机等
2020/10/23 全球购物
学习心得体会
2014/01/01 职场文书
《雾凇》教学反思
2014/02/17 职场文书
幼儿园开学寄语
2014/04/03 职场文书
小学六一儿童节活动方案
2014/08/27 职场文书
实验心得体会范文
2016/01/25 职场文书
Python字符串对齐方法使用(ljust()、rjust()和center())
2021/04/26 Python
SQL实战演练之网上商城数据库商品类别数据操作
2021/10/24 MySQL