先说说缩略图,它用得比较多,代码如下:
Code
1<?php
2header("Content-type: image/png");
3//原图
4$filename='source.jpg';
5//缩放比例 新图/原图
6$percent = '0.5';
7list($width,$height) = getimagesize($filename);
8$newwidth = $width * $percent;
9$newheight = $height * $percent;
10// Load
11$thumb = imagecreatetruecolor($newwidth, $newheight);
12$source = imagecreatefromjpeg($filename);
13// Resize
14imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
15// Output
16imagepng($thumb);
17?>
18
1<?php
2header("Content-type: image/png");
3//原图
4$filename='source.jpg';
5//缩放比例 新图/原图
6$percent = '0.5';
7list($width,$height) = getimagesize($filename);
8$newwidth = $width * $percent;
9$newheight = $height * $percent;
10// Load
11$thumb = imagecreatetruecolor($newwidth, $newheight);
12$source = imagecreatefromjpeg($filename);
13// Resize
14imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
15// Output
16imagepng($thumb);
17?>
18
再说说剪切图,就是不缩放,而是从原图中剪切出一块小图,比较个性。代码如下:
Code
1<?php
2$maxW=300;
3$maxH=300;
4//图片路径
5$link= "big.jpg";
6$img = imagecreatefromjpeg($link);
7list($width, $height, $type, $attr) = getimagesize($link);
8$widthnum=ceil($width/$maxW);
9$heightnum=ceil($height/$maxH);
10$iOut = imagecreatetruecolor ($maxW,$maxH);
11//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 )
12//将 src_im 图像中坐标从 src_x,src_y 开始,宽度为 src_w,高度为 src_h 的一部分拷贝到 dst_im 图像中坐标为 dst_x 和 dst_y 的位置上。
13
14//整图循环切割
15for ($i=0;$i < $heightnum;$i++) {
16 for ($j=0;$j < $widthnum;$j++) {
17 imagecopy($iOut,$img,0,0,($j*$maxW),($i*$maxH),$maxW,$maxH);//复制图片的一部分
18 imagejpeg($iOut,"images/".$i."_".$j.".jpg"); //输出成0_0.jpg,0_1.jpg这样的格式
19 }
20}
21
22//只剪切一个开始部位的小图.复制图片的一部分
23 imagecopy($iOut,$img,0,0,0,0,$maxW,$maxH);
24 imagejpeg($iOut,"images/sm.jpg");
25?>
26
1<?php
2$maxW=300;
3$maxH=300;
4//图片路径
5$link= "big.jpg";
6$img = imagecreatefromjpeg($link);
7list($width, $height, $type, $attr) = getimagesize($link);
8$widthnum=ceil($width/$maxW);
9$heightnum=ceil($height/$maxH);
10$iOut = imagecreatetruecolor ($maxW,$maxH);
11//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 )
12//将 src_im 图像中坐标从 src_x,src_y 开始,宽度为 src_w,高度为 src_h 的一部分拷贝到 dst_im 图像中坐标为 dst_x 和 dst_y 的位置上。
13
14//整图循环切割
15for ($i=0;$i < $heightnum;$i++) {
16 for ($j=0;$j < $widthnum;$j++) {
17 imagecopy($iOut,$img,0,0,($j*$maxW),($i*$maxH),$maxW,$maxH);//复制图片的一部分
18 imagejpeg($iOut,"images/".$i."_".$j.".jpg"); //输出成0_0.jpg,0_1.jpg这样的格式
19 }
20}
21
22//只剪切一个开始部位的小图.复制图片的一部分
23 imagecopy($iOut,$img,0,0,0,0,$maxW,$maxH);
24 imagejpeg($iOut,"images/sm.jpg");
25?>
26