2007年8月15日 星期三

GD JPEG 自動縮圖 , 插入文字 , 插入浮水印

GD JPEG 自動縮圖 , 插入文字 , 插入浮水印

function ecstart_convert_jpeg(
$src_file,$dst_file,$text_type,$text_image,$watermark_type,$watermark_image,$pic_width,
$pic_height){

//$src_file 來源圖片路徑
//$dst_file 存檔圖片路徑
//$text_type 是否插入文字
//$text_image 插入的文字內容
//$watermark_type 是否插入浮水印
//$watermark_image 圖水印圖片路徑
//$pic_width 存檔圖片寬度
//$pic_height 存檔圖片高度
$image = imagecreatefromjpeg($src_file) ;
$s_width = imagesx($image);
$s_height = imagesy($image);


// 縮圖大小
$thumb = imagecreatetruecolor($pic_width, $pic_height);
// 自動縮圖
imagecopyresized($thumb, $image, 0, 0, 0, 0, $pic_width, $pic_height, $s_width, $s_height);
//imagejpeg($thumb,"/tmp/tmpfile.jpg","100");
//$thumbimage = imagecreatefromjpeg("/tmp/tmpfile.jpg") ;


// 取得寬度
$i_width = imagesx($thumb);
$i_height = imagesy($thumb);

//imagejpeg($image,"/home/www/ecstart.com/public_html/cart/test.jpg","100");
//imagejpeg($image);

// 計算 插入文字出現位置
$ywpos = $i_height - 35 ;
// 設定 插入文字
$textcolor = imagecolorallocate($thumb, 250, 250, 250);

// 插入文字
if($text_type == "Y"){
imagestring($thumb, 5, 25, $ywpos, $text_image, $textcolor);
}
// 載入浮水印圖
$w_image = imagecreatefromjpeg($watermark_image) ;
// 取出浮水印圖 寬 與 高
$w_width = imagesx($w_image);
$w_height = imagesy($w_image);
// 計算 浮水印出現位置
$xpos = $i_width - $w_width -20 ;
$ypos = $i_height - $w_height-20 ;

//結合浮水印
if($watermark_type == "Y"){
imagecopy($thumb,$w_image,$xpos,$ypos,0,0,$w_width,$w_height);
}

imagejpeg($thumb,$dst_file,"100");


imagedestroy($thumb);
imagedestroy($image);
imagedestroy($w_image);
}

【下列文章您可能也有興趣】

11 則留言:

Benson 提到...

請問一下 如果水印是gif格式 是否有辦法程現出透明的內容
另外 文字編碼的部份 是不是要設定為UTF-8

千江有水千江月 提到...

透明部份 你可以試試看.
文字編碼部份, 這部份要看你網站用什麼邊嗎.

匿名 提到...

感謝您~~
請問可以引用到我的Blog上面嗎?
若有侵權請通知小弟拿下!!
jay0932 at aol dot tw

Unknown 提到...

插入文字是中文時,會亂碼,不知會否有方法改善呢?

Unknown 提到...

插入文字是中文時,會亂碼,不知會否有方法改善呢?

千江有水千江月 提到...

可以去找字型檔來使用

千江有水千江月 提到...

http://coz.tw/dz6/thread-18563-1-1.html 參考這邊吧~

匿名 提到...

請問有沒有辦法客製浮水印呢? 意思是讓每個user下載圖檔時,圖檔內的浮水印會寫:授予 userXX 使用 這樣子

千江有水千江月 提到...

可以啊~ 就即時產生 浮水印圖就好了.

匿名 提到...

不好意思,可以再說明白一些嗎,所謂即時產生是指??

千江有水千江月 提到...

$watermark_image 這個變數 本來是帶入浮水印的路徑, 你可以把這個改成即時產生的浮水印圖片, 這樣就可以啦.