先说说缩略图,它用得比较多,代码如下:
PHP代码
- <?php
- header("Content-type: image/png");
- //原图
- $filename='source.jpg';
- //缩放比例 新图/原图
- $percent = '0.5';
- list($width,$height) = getimagesize($filename);
- $newwidth = $width * $percent;
- $newheight = $height * $percent;
- // Load
- $thumb = imagecreatetruecolor($newwidth, $newheight);
- $source = imagecreatefromjpeg($filename);
- // Resize
- imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
- // Output
- imagepng($thumb);
- ?>
再说说剪切图,就是不缩放,而是从原图中剪切出一块小图,比较个性。代码如下:
PHP代码
- <?php
- $maxW=300;
- $maxH=300;
- //图片路径
- $link= "big.jpg";
- $img = imagecreatefromjpeg($link);
- list($width, $height, $type, $attr) = getimagesize($link);
- $widthnum=ceil($width/$maxW);
- $heightnum=ceil($height/$maxH);
- $iOut = imagecreatetruecolor ($maxW,$maxH);
- //bool imagecopy ( resource dst_im, resource src_im, int dst_x, int dst_y, int src_x, int src_y, int src_w, int src_h )
- //将 src_im 图像中坐标从 src_x,src_y 开始,宽度为 src_w,高度为 src_h 的一部分拷贝到 dst_im 图像中坐标为 dst_x 和 dst_y 的位置上。
- //整图循环切割
- for ($i=0;$i < $heightnum;$i++) {
- for ($j=0;$j < $widthnum;$j++) {
- imagecopy($iOut,$img,0,0,($j*$maxW),($i*$maxH),$maxW,$maxH);//复制图片的一部分
- imagejpeg($iOut,"images/".$i."_".$j.".jpg"); //输出成0_0.jpg,0_1.jpg这样的格式
- }
- }
- //只剪切一个开始部位的小图.复制图片的一部分
- imagecopy($iOut,$img,0,0,0,0,$maxW,$maxH);
- imagejpeg($iOut,"images/sm.jpg");
- ?>
注释比较明白,看看就懂了


