2013-05-12 82 views
-2

我正在一個網站,我最初並沒有創建/開發。質量和尺寸丟失後,添加水印圖像

用戶可以上傳圖片,當他們這樣做時,會有一個函數用水印創建該圖片的副本。

但與水印複印質量低以及它的尺寸比原始圖像更小

Without watermark

With watermark

function watermark($path){ 
    $watermark = imagecreatefrompng('files/watermark.png'); 
    $wmsize = getimagesize('files/watermark.png'); 
    $image = imagecreatefromjpeg($path); 
    $size = getimagesize($path); 

    $dest_x = (8); 
    $dest_y = ($size[1] - 35 ); 

    imagecopy($image, $watermark, $dest_x, $dest_y, 0, 0, $wmsize[0], $wmsize[1]); 

    ob_start(); 
    imagejpeg($image); 
    $img2 = ob_get_contents(); 
    ob_end_clean(); 
    imagedestroy($image); 
    return $img2 ; 
} 
+2

爲什麼要爲已經有水印的圖像添加水印?你是那些聚合不屬於你的內容的網站之一嗎? – 2013-05-12 23:28:02

+0

@remyabel不是它是一個圖像共享網站,原上傳者在上傳之前添加了自己的水印,您可以在水印圖像的右側看到他的名字與第一張圖像相同,並且thanx爲倒投 – max 2013-05-12 23:37:59

回答

1

的圖像質量,是因爲JPEG的下降壓縮。

每次將圖像保存爲JPEG時,都會降低其質量,因爲JPEG使用有損壓縮。您可以通過將壓縮質量設置爲100%來最大限度地減少損失,但是如果您想要執行無損壓縮,則無法使用JPEG,因此您必須查找其他圖像格式,例如, TIFF。

+0

但是原始圖像本身是一個jpeg,你是說每個jpeg副本的質量都會比舊版本低?是否有可能使用php創建jepeg的tiff? thanx – max 2013-05-13 00:22:55

+0

是的,這就是爲什麼攝影師不能使用JPG的 – 2013-05-13 00:30:46

+0

@max我相信可以使用GD庫將圖像文件保存爲TIFF圖像。欲瞭解更多信息,請參閱[PHP圖像處理手冊](http://cz1.php.net/manual/en/book.image.php)。但由於您的網站的目的是分享圖片,因此更改用戶上傳的圖片格式並不明智。我建議堅持將壓縮質量設置爲100%,它應該可以解決您的問題。 – SysGen 2013-05-13 00:47:33