Linux 技术手札

PHP 下制作缩图

要用 PHP 自动创建一个图片的缩图,做法十分简单,因为 PHP 已内建了相关函式。本文将会介绍制作缩图的巨体做法。 (Web Server 需要 GD 支援)

imagecopyresized
PHP 已经内建了制作缩图的函式,它是 imagecopyresized,以下是 imagecopyresized 的语法:

int imagecopyresized ( resource dst_image, resource src_image, int dst_x, int dst_y, int src_x, int src_y, int dst_w, int dst_h, int src_w, int src_h )

dst_image — 输出目标档案
src_image — 来源档案
dst_x — 目标档案开始点的 x 座标
dst_y — 目标档案开始点的 y 座标
src_x — 来源档案开始点的 x 座标
src_y — 来源档案开始点的 y 座标
dst_w — 目标档案的长度
dst_h — 目标档案的高度
src_w — 来源档案的长度
src_h — 来源档案的高度

例如上传的档案是 $_FILES[‘pic’],而它是属于 jpeg 图案,缩图的长及高不大于 100,那么实作方法如下:

以上的程式大致上是先取得 $_FILES[‘pic’] 图档的长度及高度,然后再计算出缩图的相应长度及高度,制作好缩图后,最后将缩图储存到 /var/www/html/uploads/thumb/ 目录下。

高精度图片的质量以上制作缩图的方法在处理一般图档是没有问题,但当要处理的是高精度图片,那么造出的缩图会很难看,与绘图软件造出的缩图有很大程度上的分别,要解决这个问题,可以使用在 php.net 上用户贴出的一个函式,这个函式可以解决高精度图片的问题,但换来的代价是处理的时间较慢:

以上函式的用法相档简单,$src 是来源档案,$x 是缩图的长度,$y 是缩图的高度,回传的是缩图。

而在 PHP 中除了使用 GD 外,还可以用 ImageMagick 来做,而 ImageMagick 日后有机会再作介绍。

Exit mobile version