- 论坛徽章:
- 1
|
写程序有些年头了,发扬一下开源精神,欢迎大家批评指导。
Power by zyme
一、用大图制作小图函数。
- <?
- function get_picture_rebuild($src_pic_file, $dst_pic_file, $dst_pic_width, $dst_pic_height)
- {
- // 自动制作小图片
- $src_x = "0"; //源图起点x座标
- $src_y = "0"; //源图起点y座标
- $src_w = "0"; //源图终点w宽度
- $src_h = "0"; //源图终点h高度
- $dst_x = "0"; //目标图起点x座标
- $dst_y = "0"; //目标图起点y座标
- $dst_w = "0"; //目标图终点w宽度
- $dst_h = "0"; //目标图终点h高度
- list($src_w,$src_h,$type) = getimagesize($src_pic_file);
- if($type == 1){$img_cf = imagecreatefromgif($src_pic_file);}
- elseif($type == 2){$img_cf = imagecreatefromjpeg($src_pic_file);}
- elseif($type == 3){$img_cf = imagecreatefrompng($src_pic_file);}
- else{return false;}
- if( ($src_w/$src_h)>;($dst_pic_width/$dst_pic_height) )
- {
- $dst_w = $dst_pic_width;
- $dst_h = round($dst_pic_width * ($src_h/$src_w));
- }
- else
- {
- $dst_w = round($dst_pic_height * ($src_w/$src_h));
- $dst_h = $dst_pic_height;
- }
- $img_ct = imagecreatetruecolor($dst_pic_width,$dst_pic_height);
- $white = imagecolorallocate($img_ct, 255, 255, 255); //定义白色
- imagefill($img_ct,1,1,$white); //填充白色
- imagecopyresampled($img_ct,$img_cf,round(($dst_pic_width-$dst_w)/2),round(($dst_pic_height-$dst_h)/2),0,0,$dst_w,$dst_h,$src_w,$src_h);
- $argent = imagecolorallocate($img_ct, 220, 220, 220); //定义银色
- imageline($img_ct,0,0,$dst_pic_width-1,0, $argent); //画边框
- imageline($img_ct,0,0,0,$dst_pic_height-1,$argent); //画边框
- imageline($img_ct,$dst_pic_width-1,0, $dst_pic_width-1,$dst_pic_height-1,$argent); //画边框
- imageline($img_ct,0,$dst_pic_height-1,$dst_pic_width-1,$dst_pic_height-1,$argent); //画边框
- imagejpeg($img_ct,$dst_pic_file);
- imagedestroy($img_ct);
- return $dst_pic_file;
- }
- ?>;
- <?
- //example
- $src_pic_file = "c:/老图片.jpg";
- $dst_pic_file = "c:/新图片.jpg";
- get_picture_rebuild($src_pic_file, $dst_pic_file, 150, 200);
- ?>;
复制代码 |
|