本文实例为大家分享了多功能php图片处理类,供大家参考,具体内容如下
<"水印图片不应该比背景图片小"; return false; } $backimg=$this->Img_resouce($backname, $backinfo); $waterimg=$this->Img_resouce($watername, $waterinfo); var_dump($backimg);exit(); $backimg=$this->CopyImage($backimg, $waterimg, $pos, $waterinfo); $this->SaveNewImage($backimg, $wa_prixs.$backname, $backinfo); }else{ echo "图片或水印不存在"; return false; } } /** +----------------------------------------------------------------------- * 获取图片信息函数 +----------------------------------------------------------------------- * @param unknown $name * @return unknown */ private function ImageInfo($img) { $imageInfo=getimagesize($img); if ($imageInfo!==false) { $imageType=strtolower(substr(image_type_to_extension($imageInfo[2]),1)); $imageSize=filesize($img); $Info=array( "width" => $imageInfo[0], "height" => $imageInfo[1], "type" => $imageType, "size" => $imageSize, "mime" => $imageInfo['mime'] ); return $Info; }else{ return false; } } /** +-------------------------------------------------------- * 创建原图像格式函数 +-------------------------------------------------------- * @param unknown $name * @param unknown $imaginfo * @return boolean|resource */ private function Img_resouce($name,$imageinfo){ $iamgeres=$this->path.$name; //var_dump($iamgeres);exit(); switch ($imageinfo['type']) { case 'gif': $img=imagecreatefromgif($name); break; case 'jpg': $img=imagecreatefromjpeg($name); break; case 'png': $img=imagecreatefrompng($name); break; } return $img; } /** +-------------------------------------------------- * 获取等比缩放尺寸函数 +-------------------------------------------------- * @param unknown $name * @param unknown $width * @param unknown $height * @param unknown $imaginfo * @return Ambigous <unknown, number> */ private function getNewSize($name,$width,$height,$imaginfo){ $size['width']=$imaginfo['width']; $size['height']=$imaginfo['height']; if ($width<$imaginfo['width']) { $size['width']=$width; } if ($height<$imaginfo['height']) { $size['height']=$height; } //图像等比例缩放算法 if ($imaginfo['width']*$size['width']>$imaginfo['height']*$size['height']) { $size['height']=round($imaginfo['height']*$size['width']/$imaginfo['width']); }else{ $size['width']=round($imaginfo['width']*$size['height']/$imaginfo['height']); } return $size; } private function getImage($imageres,$size,$imageinfo){ //新建一个真彩色图像 $newimg=imagecreatetruecolor($size['width'], $size['height']); //将某个颜色定义为透明色 $otsc=imagecolortransparent($imageres); //获取图像的调色板的颜色数目 if ($otsc>=0&&$otsc<=imagecolorstotal($imageres)) { //取得某索引的颜色 $stran=imagecolorsforindex($imageres, $otsc); //为图像分配颜色 $newt=imagecolorallocate($imageres, $stran['red'], $stran['green'], $stran['blue']); //区域填充函数 imagefill($newimg, 0, 0, $newt); //为图像定义透明色 imagecolortransparent($newimg,$newt); } imagecopyresized($newimg, $imageres, 0, 0, 0, 0, $size['width'], $size['height'], $imageinfo['width'], $imageinfo['height']); imagedestroy($imageres); return $newimg; } /** +---------------------------------------------- *保存图像函数 +---------------------------------------------- * @param unknown $newimg * @param unknown $newname * @param unknown $imageinfo * @return unknown */ private function SaveNewImage($newimg,$newname,$imageinfo){ switch ($imageinfo['type']){ case 1://gif $result=imagegif($newimg,$this->path.$newname); break; case 2://jpg $result=imagejpeg($newimg,$this->path.$newname); break; case 3://png $result=imagepng($newimg,$this->path.$newname); break; } imagedestroy($newimg); return $newname; } /** +----------------------------------------------------------------- * 获取水印位置函数 +----------------------------------------------------------------- * @param unknown $backinfo 背景信息 * @param unknown $waterinfo 水印信息 * @param unknown $waterpos 水印位置 * @return boolean|multitype:number 返回坐标数组 */ private function getPos($backinfo,$waterinfo,$waterpos) { if ($backinfo['width']<$waterinfo['width']||$backinfo['height']<$waterinfo['height']) { return false; } switch ($waterpos) { case 1://左上角 $posX=0; $posY=0; break; case 2://中上方 $posX=$backinfo['width']-$waterinfo['width']/2; $posY=0; break; case 3://右上角 $posX=$backinfo['width']-$waterinfo['width']; $posY=0; break; case 4://左中方 $posX=0; $posY=$backinfo['height']-$waterinfo['height']/2; break; case 5://正中间 $posX=$backinfo['width']-$waterinfo['width']/2; $posY=$backinfo['height']-$waterinfo['height']/2; break; case 6://右中方 $posX=$backinfo['width']-$waterinfo['width']; $posY=$backinfo['height']-$waterinfo['height']/2; break; case 7://底部靠左 $posX=0; $posY=$backinfo['height']-$waterinfo['height']; break; case 8://底部居中 $posX=$backinfo['width']-$waterinfo['width']/2; $posY=$backinfo['height']-$waterinfo['height']; break; case 9://底部靠右 $posX=$backinfo['width']-$waterinfo['width']; $posY=$backinfo['height']-$waterinfo['height']; break; case 0: default : $posX=rand(0,$backinfo['width']-$waterinfo['width']); $posY=rand(0,$backinfo['height']-$waterinfo['height']); break; } return array('posX'=>$posX,'posY'=>$posY); } /** +------------------------------------------------------------------- * 拷贝图像 +------------------------------------------------------------------- * @param unknown $backimg 背景资源 * @param unknown $waterimg 水印资源 * @param unknown $pos 水印位置 * @param unknown $waterinfo 水印信息 * @return unknown */ private function CopyImage($backimg,$waterimg,$pos,$waterinfo) { imagecopy($backimg, $waterimg, $pos['posX'], $pos['posY'], 0, 0, $waterinfo['width'], $waterinfo['height']); imagedestroy($waterimg); return $backimg; } } ?>
以上就是本文的全部内容,希望对大家学习PHP程序设计有所帮助。
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
暂无评论...
更新日志
2024年11月27日
2024年11月27日
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]