2012-08-06 111 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