PHP生成智能缩略图 博客分类: PHP php图片缩略图
程序员文章站
2024-03-25 14:43:10
...
<?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 ( "11.jpg", "200", "150", "1", "17.jpg" ); ?>
上一篇: [email protected]动画
下一篇: JS中for循环变量作用域
推荐阅读
-
PHP生成智能缩略图 博客分类: PHP php图片缩略图
-
很强的 PHP 图片处理类 博客分类: 开发 PHP图片处理
-
PHP 5 中图片验证码的制作 博客分类: 开发 PHP验证码
-
数组转换为树 博客分类: php php生成树
-
php生成指定位数(13位)的时间戳 博客分类: php PHP13位时间戳13位时间戳
-
PHP基于GD库实现的生成图片缩略图函数示例
-
PHP基于GD库实现的生成图片缩略图函数示例
-
PHP中bom头引发的超级血案-head中的静态文件生成到body里面了 博客分类: php phpbomcms织梦head中的静态文件生成到body里面
-
php生成图片缩略图功能示例
-
PHP生成图片缩略图类示例