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上传、管理照片示例
Oct 09 PHP
PHP+Mysql+jQuery实现发布微博程序 jQuery篇
Oct 08 PHP
PHP中文处理 中文字符串截取(mb_substr)和获取中文字符串字数
Nov 10 PHP
Php图像处理类代码分享
Jan 19 PHP
win7计划任务定时执行PHP脚本设置图解
May 09 PHP
PHP中使用CURL获取页面title例子
Jan 07 PHP
PHP树-不需要递归的实现方法
Jun 21 PHP
php 实现301重定向跳转实例代码
Jul 18 PHP
PHP批量删除jQuery操作
Jul 23 PHP
laravel自定义分页效果
Jul 23 PHP
PHP XML Expat解析器知识点总结
Feb 15 PHP
PHP常量define和const的区别详解
May 18 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作的文本留言本的例子(一)
2006/10/09 PHP
用ADODB来让PHP操作ACCESS数据库的方法
2006/12/31 PHP
PHP提取字符串中的图片地址[正则表达式]
2011/11/12 PHP
跟我学Laravel之配置Laravel
2014/10/15 PHP
php获取YouTube视频信息的方法
2015/02/11 PHP
PHP实现的用户注册表单验证功能简单示例
2019/02/25 PHP
通过 Dom 方法提高 innerHTML 性能
2008/03/26 Javascript
json 定义
2008/06/10 Javascript
javascript下高性能字符串连接StringBuffer类
2010/08/16 Javascript
c#和Javascript操作同一json对象的实现代码
2012/01/17 Javascript
jquery制作搜狐快站页面效果示例分享
2014/02/21 Javascript
jQuery实现鼠标滑过链接控制图片的滑动展开与隐藏效果
2015/10/28 Javascript
jQuery.Ajax()的data参数类型详解
2017/07/23 jQuery
vue项目实现记住密码到cookie功能示例(附源码)
2018/01/31 Javascript
vue中使用rem布局代码详解
2019/10/30 Javascript
Python的Flask框架中实现分页功能的教程
2015/04/20 Python
python显示生日是星期几的方法
2015/05/27 Python
Python中的集合类型知识讲解
2015/08/19 Python
python 读写、创建 文件的方法(必看)
2016/09/12 Python
python实现textrank关键词提取
2018/06/22 Python
使用Python写一个量化股票提醒系统
2018/08/22 Python
Django --Xadmin 判断登录者身份实例
2020/07/03 Python
Python实例教程之检索输出月份日历表
2020/12/16 Python
纯css3实现的鼠标悬停动画按钮
2014/12/23 HTML / CSS
使用placeholder属性设置input文本框的提示信息
2020/02/19 HTML / CSS
Html5 Canvas实现图片标记、缩放、移动和保存历史状态功能 (附转换公式)
2020/03/18 HTML / CSS
英国最受欢迎的在线隐形眼镜商店:VisionDirect.co.uk
2018/12/06 全球购物
Charles & Colvard官网:美国莫桑石品牌
2019/06/05 全球购物
大学生毕业自荐信
2013/10/10 职场文书
大学生在校学习的自我评价
2014/02/18 职场文书
企业新年寄语
2014/04/04 职场文书
规范化管理年活动总结
2014/08/29 职场文书
派出所班子党的群众路线对照检查材料思想汇报
2014/10/01 职场文书
css position fixed 左右双定位的实现代码
2021/04/29 HTML / CSS
SpringBoot连接MySQL获取数据写后端接口的操作方法
2021/11/02 MySQL
vue.js 使用原生js实现轮播图
2022/04/26 Vue.js