2012-08-06 107 views
1

我一直在努力解決一個問題,將圖像保存爲失去質量的jpeg。作爲我的學位項目,我正在製作一個應用程序,在Facebook上上傳圖片。在Facebook上檢索jpeg圖像會顯着降低質量。

我有一個不錯的彩色圖像,爲此我洗牌像素值以獲得映射圖像。然後我將它上傳到Facebook上。當我下載並將像素移回到原始圖像時,它會過分失去質量。

下面是原來的,映射和檢索圖片:

original masked retrived image

我試着像使用PNG文件,其中工程許多策略。但是,目前,無論圖像是什麼,Facebook都會將其轉換爲jpeg。所以,如果我將maskedimage.png上傳到Facebook,它會將其轉換爲.jpg並丟失一些像素相關值,這並不會給我正確的圖像來檢索原始圖像。

我使用PHP和facebook-php sdk。

請建議。
謝謝
-Kaur

回答

3

你被卡住了。 JPEG是一種有損耗的算法,它依賴於人類視覺特性來掩蓋不準確性。通過擾亂像素,你已經改變了損失的性質,使它不再隱藏。

+0

哦!沒有其他選擇嗎?我可以在檢索到的圖像上放一些過濾器,使它在php中着色嗎? – kaur 2012-08-06 20:35:18

+1

@ kurur,你不能放回已被刪除的東西。這些信息不再存在。您唯一的選擇是使用JPEG以外的格式,如果該選項不可用,則您可以執行的操作很少。 – 2012-08-06 23:16:36

+0

啊!謝謝你的回覆馬克。 – kaur 2012-08-07 14:20:24

0

這不是主要關於JPEG是有損的;這是關於Facebook迫使圖像重新壓縮,即使您在上傳時選中「高品質」。

您可以做的最好的辦法是將源圖像分辨率加倍,對於純色,嘗試引入噪點。在這裏的詳細信息GD.SE question

請注意,上傳圖像< 100kb的技巧已不再有效,至少從June 2012