PHP图片生成缩略图
2009-07-18 20:09
183 查看
<?php class resizeimage { //图片类型 var $type; //实际宽度 var $width; //实际高度 var $height; //改变后的宽度 var $resize_width; //改变后的高度 var $resize_height; //是否裁图 var $cut; //源图象 var $srcimg; //目标图象地址 var $dstimg; //临时创建的图象 var $im; function resizeimage($img, $wid, $hei, $c, $dstpath) { $this->srcimg = $img; $this->resize_width = $wid; $this->resize_height = $hei; $this->cut = $c; //图片的类型 $this->type = strtolower ( substr ( strrchr ( $this->srcimg, "." ), 1 ) ); //初始化图象 $this->initi_img (); //目标图象地址 $this->dst_img ( $dstpath ); //-- $this->width = imagesx ( $this->im ); $this->height = imagesy ( $this->im ); //生成图象 $this->newimg (); ImageDestroy ( $this->im ); } function newimg() { //改变后的图象的比例 $resize_ratio = ($this->resize_width) / ($this->resize_height); //实际图象的比例 $ratio = ($this->width) / ($this->height); if (($this->cut) == "1") //裁图 { if ($ratio >= $resize_ratio) //高度优先 { $newimg = imagecreatetruecolor ( $this->resize_width, $this->resize_height ); imagecopyresampled ( $newimg, $this->im, 0, 0, 0, 0, $this->resize_width, $this->resize_height, (($this->height) * $resize_ratio), $this->height ); ImageJpeg ( $newimg, $this->dstimg ); } if ($ratio < $resize_ratio) //宽度优先 { $newimg = imagecreatetruecolor ( $this->resize_width, $this->resize_height ); imagecopyresampled ( $newimg, $this->im, 0, 0, 0, 0, $this->resize_width, $this->resize_height, $this->width, (($this->width) / $resize_ratio) ); ImageJpeg ( $newimg, $this->dstimg ); } } else //不裁图 { if ($ratio >= $resize_ratio) { $newimg = imagecreatetruecolor ( $this->resize_width, ($this->resize_width) / $ratio ); imagecopyresampled ( $newimg, $this->im, 0, 0, 0, 0, $this->resize_width, ($this->resize_width) / $ratio, $this->width, $this->height ); ImageJpeg ( $newimg, $this->dstimg ); } if ($ratio < $resize_ratio) { $newimg = imagecreatetruecolor ( ($this->resize_height) * $ratio, $this->resize_height ); imagecopyresampled ( $newimg, $this->im, 0, 0, 0, 0, ($this->resize_height) * $ratio, $this->resize_height, $this->width, $this->height ); ImageJpeg ( $newimg, $this->dstimg ); } } } //初始化图象 function initi_img() { if ($this->type == "jpg") { $this->im = imagecreatefromjpeg ( $this->srcimg ); } if ($this->type == "gif") { $this->im = imagecreatefromgif ( $this->srcimg ); } if ($this->type == "png") { $this->im = imagecreatefrompng ( $this->srcimg ); } } //图象目标地址 function dst_img($dstpath) { $full_length = strlen ( $this->srcimg ); $type_length = strlen ( $this->type ); $name_length = $full_length - $type_length; $name = substr ( $this->srcimg, 0, $name_length - 1 ); $this->dstimg = $dstpath; //echo$this->dstimg; } } $resizeimage = new resizeimage('D:/PC_webserver/phproot/TestPhpProject/upload/12.jpg', 200, 200, false, 'D:/PC_webserver/phproot/TestPhpProject/upload/12.jpg'); ?>
相关文章推荐
- PHP 生成图片缩略图
- 使用gd库实现php服务端图片裁剪和生成缩略图功能分享
- PHPThumb处理图片,生成缩略图,图片尺寸调整,图片截取,图片加水印,图片旋转
- PHP生成图片缩略图,并在浏览器中显示,灵活,实用
- PHP生成图片缩略图
- PHPThumb处理图片,生成缩略图,图片尺寸调整,图片截取,图片加水印,图片旋转
- php实现图片上传并利用ImageMagick生成缩略图
- PHP缩略图生成和图片水印制作
- PHP Imagick完美实现图片裁切、生成缩略图、添加水印
- PHP图片等比例缩放生成缩略图函数分享
- 使用PHP生成图片的缩略图的方法
- php上传图片自动生成缩略图方法函数
- jquery php ajax多图片上传.上传进度,生成缩略图
- 使用PHP实现生成固定大小图片缩略图功能(智能裁剪,图片不失真)
- PHP生成图片缩略图
- PHP给图片生成缩略图和加版权的类
- php按指定大小等比缩放生成上传图片缩略图
- php裁剪上传图片生成缩略图
- 原生php图片等比压缩,修改图片尺寸为最大宽度800像素,生成缩略图