php 固定水印大小_PHP 添加水印 & 比例缩略图 & 固定高度 & 固定宽度 类

跳至//文件名:image_process.class.php

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 watermarkImage($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;

$y = $this->source_height- $logo_height;

ImageCopy($sourceHandle,$logoHandle,$x,$y,0,0,$logo_width,$logo_width) or die("fail to combine");

$newPic = $this->orign_dirname .'\water_'. time().'.'. $this->typeList[$this->source_type_id];

if( $this->saveImage($sourceHandle,$newPic)){

imagedestroy($sourceHandle);

imagedestroy($logoHandle);

}

}

// fix 宽度

// height = true 固顶高度

// width = true 固顶宽度

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);

}

//比例缩放

// $scale 缩放比例

public function scaleImage($scale){

$width = floor($this->source_width * $scale);

$height = floor($this->source_height * $scale);

$this->tinyImage($width,$height);

}

//创建略缩图

private 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 = time().'_'.$width.'_'.$height.'.'. $this->typeList[$this->source_type_id];

$newPic = $this->orign_dirname .'\thumb_'. $newPic;

if( $this->saveImage($tinyImage,$newPic)){

imagedestroy($tinyImage);

imagedestroy($handle);

}

}

//保存图片

private function saveImage($image,$url){

if(ImageJpeg($image,$url)){

return true;

}

}

}

2.[代码][PHP]代码//使用

watermarkImage($logo);

$s->scaleImage(0.8);

$s->fixSizeImage(200,false);

sleep(1);

}

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

你可能感兴趣的:(php,固定水印大小)