PHP 添加水印 & 比例缩略图 & 固定高度 & 固定宽度 类。
2014-07-28 17:32
375 查看
<?php //PHP 添加水印 & 比例缩略图 & 固定高度 & 固定宽度 类。 class Image_process{ public $source; //原图 public $source_width; //原图宽度 public $source_height; //原图高度 public $source_type_id; public $orign_name; public $orign_dirname; //传入原图路径 public function __construct($source){ $this->typeList = array(1=>'gif',2=>'jpg',3=>'png'); $ginfo = getimagesize($source); $this->source_width = $ginfo[0]; $this->source_height = $ginfo[1]; $this->source_type_id = $ginfo[2]; $this->orign_url = $source; $this->orign_name = basename($source); $this->orign_dirname = dirname($source); } //判断图片的文件的格式,返回PHP可识别的编码 public function judgeType($type,$source){ if($type == 1){ return imagecreatefromgif($source); //gif }else if($type == 2){ return imagecreatefromjpeg($source); //jpg }else if($type == 3){ return imagecreatefrompng($source); //png }else{ return false; } } //生成水印图片 public function waterMakeImage($logo){ $linfo = getimagesize($logo); $logo_width = $linfo[0]; $logo_height = $linfo[1]; $logo_type_id = $linfo[2]; $sourceHandle = $this->judgeType($this->source_type_id,$this->orign_url); $logoHandle = $this->judgeType($logo_type_id,$logo); if(!$sourceHandle || !$logoHandle){ return false; } $x = ($this->source_width - $logo_width)/2; $y = ($this->source_height - $logo_height)/2; imagecopy($sourceHandle,$logoHandle,$x,$y,0,0,$logo_width,$logo_height); $newPic = $this->orign_dirname.'\water_'.time().'.'.$this->typeList[$this->source_type_id]; if($this->saveImage($sourceHandle,$newPic)){ imagedestroy($sourceHandle); imagedestroy($logoHandle); } } //固定高度宽度 public function fixSizeImage($width,$height){ if($width > $this->source_width) $this->source_width; if($height > $this->source_height) $this->source_height; if($width === false){ $width = floor($this->source_width / ($this->source_height / $height)); } if($height === false){ $height = floor($this->source_height / ($this->source_width / $width)); } $this->tinyImage($width,$height); } //等比例缩放图片 public function scaleImage($scale){ $width = floor($this->source_width * $scale); $height = floor($this->source_height * $scale); $this->tinyImage($width, $height); } //创建缩略图 public function tinyImage($width,$height){ $tinyImage = imagecreatetruecolor($width,$height); $handle = $this->judgeType($this->source_type_id,$this->orign_url); if(function_exists('imagecopyresampled')){ imagecopyresampled($tinyImage, $handle, 0, 0, 0, 0, $width, $height, $this->source_width, $this->source_height); }else{ imagecopyresized($tinyImage, $handle, 0, 0, 0, 0, $width, $height, $this->source_width, $this->source_height); } $newPic = $this->orign_dirname.'\thumb_'.time().'_'.$width."_".$height.".".$this->typeList[$this->source_type_id]; if($this->saveImage($tinyImage,$newPic)){ imagedestroy($tinyImage); imagedestroy($handle); } } //保存图片 private function saveImage($image,$url){ if(imagejpeg($image,$url)){ return true; } } } $imgHandle = new Image_process('D:\AppServ\www\test\getimg\14061907445601.jpg'); //$imgHandle->waterMakeImage('D:\AppServ\www\test\getimg\shougongke.png'); //生成水印图片 //$imgHandle->fixSizeImage(200,150); //固定长度图片 $imgHandle->scaleImage(0.2); //等比例缩放 ?>
相关文章推荐
- PHP 添加水印 & 比例缩略图 & 固定高度 & 固定宽度 类。
- 网页图片变形解决方法-固定宽度高度按比例自动缩小CSS
- div 固定高度,设定比例的宽度,超出指定高度时竖直滚动条出现
- PHP 使用 Imagick 裁切/生成缩略图/添加水印自动检测和处理 GIF
- PHP自适应宽高度等比例缩略图函数 (无裁切)
- PHP Imagick完美实现图片裁切、生成缩略图、添加水印
- Android 设置ImageView宽度固定,其高度按比例缩放适应
- PHP Imagick完美实现图片裁切、生成缩略图、添加水印
- Android 自定义imageview 图片宽度固定大小高度按比例自适应
- PHP-生成缩略图和添加水印图-学习笔记
- PHP 使用 Imagick 裁切/生成缩略图/添加水印, 自动检测和处理 GIF
- php 图片操作类,支持生成缩略图,添加水印,上传缩略图
- PHP 使用 Imagick 裁切/生成缩略图/添加水印, 自动检测和处理 GIF
- Android 设置ImageView宽度固定,其高度按比例缩放适应
- php gd2 上传图片/文字水印/图片水印/等比例缩略图/实现代码
- PHP配置本地域名&让系统支持缩略图和水印功能
- PHP图片处理函数 类 (水印图,缩略图)[关于等比例压缩与裁剪压缩]
- 用CSS实现高度宽度固定比例,宽度不固定
- PHP 图片处理工具类(添加水印与生成缩略图)
- Android 设置ImageView宽度固定,其高度按比例缩放适应