相關(guān)關(guān)鍵詞
關(guān)于我們
最新文章
- PHP中opcode緩存簡(jiǎn)單用法分析
- thinkPHP控制器變量在模板中的顯示方法示例
- PHP move_uploaded_file() 函數(shù)(將上傳的文件移動(dòng)到新位置)
- dirname(__FILE__)的含義和應(yīng)用說明
- thinkPHP5框架實(shí)現(xiàn)分頁(yè)查詢功能的方法示例
- PHP中單雙號(hào)與變量
- PHP獲得當(dāng)日零點(diǎn)時(shí)間戳的方法分析
- Laravel ORM對(duì)Model::find方法進(jìn)行緩存示例詳解
- PHP讀寫文件高并發(fā)處理操作實(shí)例詳解
- 【CLI】利用Curl下載文件實(shí)時(shí)進(jìn)度條顯示的實(shí)現(xiàn)
PHP圖片水印函數(shù)
此函數(shù)為PHP增加圖片水印函數(shù),有需要可借鑒。因包含在類中,一些函數(shù)有調(diào)用,去掉即可。
public function watermark(){
$this->picssize($this->watermark['file']);
if($this->info !== true) return false;
if($this->Size[0]<$this->watermark['min_width'] || $this->Size[1]<$this->watermark['min_height']){
$this->info = $this->Language[4];
return false;
}
$nzpics = $this->picscreate($this->watermark['file']);
if($this->watermark['type'] == 'pics'){
$wapics = $this->watermark['pics'];
if(!is_file($wapics)){
$this->info = $this->Language[6] . $wapics;
return false;
}
$src = getimagesize($wapics);
$wapics = $this->picscreate($wapics);
}else {
$src[0] = 300;
$src[1] = 30;
if(!is_file($this->watermark['font_file'])){
$this->info = $this->Language[5] . $this->watermark['font_file'];
return false;
}
}
switch($this->watermark['alignment']){
case 1 : $src_x = 0; $src_y = 0; break;
case 2 : $src_x = ($this->Size[0]/2)-($src[0]/2); $src_y = 0; break;
case 3 : $src_x = $this->Size[0]-$src[0]; $src_y = 0; break;
case 4 : $src_x = 0; $src_y = ($this->Size[1]/2)-($src[1]/2); break;
case 5 : $src_x = ($this->Size[0]/2)-($src[0]/2); $src_y = ($this->Size[1]/2)-($src[1]/2); break;
case 6 : $src_x = $this->Size[0]-$src[0]; $src_y = ($this->Size[1]/2)-($src[1]/2); break;
case 7 : $src_x = 0; $src_y = $this->Size[1]-$src[1]; break;
case 8 : $src_x = ($this->Size[0]/2)-($src[0]/2); $src_y = ($this->Size[1])-($src[1]); break;
case 9 : $src_x = ($this->Size[0])-($src[0]); $src_y = ($this->Size[1])-($src[1]); break;
}
$src_x += $this->watermark['x'];
$src_y += $this->watermark['y'];
if($this->watermark['type'] == 'pics'){
imagecopyresampled($nzpics,$wapics,$src_x,$src_y,0,0,$src[0],$src[1],$src[0],$src[1]);
} else {
$src_x += 0;
$src_y += 20;
$rgb = $this->hex2rgb($this->watermark['color']);
$color = imagecolorallocate($nzpics,$rgb[0],$rgb[1],$rgb[2]);
$result = @imagettftext($nzpics,$this->watermark['font_size'],$this->watermark['angle'],$src_x,$src_y,$color,$this->watermark['font_file'],$this->watermark['text']);
if(!is_numeric($result[0])){
$this->info = $this->Language[7];
return false;
}
unset($color,$rgb);
}
$newPics = $this->watermark['rename'] == 'auto' ? $this->watermark['file'] : $this->watermark['rename'];
switch($this->Size[4]){
case 'jpg' : $result = @imagejpeg($nzpics,$newPics,100); break;
case 'jpeg' : $result = @imagejpeg($nzpics,$newPics,100); break;
case 'png' : $result = @imagepng($nzpics,$newPics); break;
case 'gif' : $result = @imagegif($nzpics,$newPics); break;
}
if($result){
@chmod ($newPics,$this->chmod_files);
@imagedestroy($nzpics); @imagedestroy($wapics);
unset($wapics,$nzpics,$src,$src_x,$src_y,$newPics);
return true;
} else {
$this->info = $this->Language[8].$newPics;
return false;
}
}