gmail缩略图变色初步调查

narkau的MSN里面提到,Gmail图片附件预览图会变色?奉命调查一下~

原帖在http://www.gseeker.com/50226711/eeaeiegmailceaeeeaeeie_40941.php

实验情况是这样,必须下载那幅特定的jpg图像,添加到gmail的附件中,预览时图片的缩略图就是橙色,而原图是蓝色。
原图压缩包HFlogo.rar,请解压后实验。

调查过程如下:

    开始我认为是jpeg图像的exif部分有个橙色的缩略图,gmail就直接用了这个缩略图(相关参阅《名不副实: 制作一张神奇的图片》)。于是我用Exifer提取了这幅图像的exif缩略图,发现就是蓝色的。而且exif的缩略图和gmail生成的缩略图分辨率不同,可以排除这个假设。
    问题集中到这个文件上来,猛然发现这个小幅的logo虽然是jpg格式,竟然有600K之大!动手将其另存为bmp才500K...这个就十分诡异了,而且这幅图再另存jpg也不会有变色的情况(另存后就质量调到最高也不会超过200K)。我开始怀疑是有人故意制造了这幅图。
    细致分析图像,原图的蓝色RGB编码#0041FF,缩略图橙色编码在#FE4100附近(缩略图由于压缩比的问题,颜色不是那么单一)。很容易发现R值(red)和B(blue)值似乎发生交换。是不是编码的问题呢?可是jpg不使用RGB编码,而是YUV12,但也不能排除的UV值对调的可能。索性查阅一下jpg的编码规则(JPEG 简易文档V2.14),然后对照那个600K的文件查看二进制编码,眼睛都花了,没什么特别发现!

    知识普及:颜色的RGB编码——众所周知光的颜色成分可以分为红、绿、蓝三个分量。RGB编码分别用2位16进制数表示颜色中红r绿g蓝b成分,共6位如#FF0000表示纯红,#00FF00表示纯绿,#0000FF表示纯蓝,#000000表示黑色,#FFFFFF表示白色。

至此调查没什么头绪了,gmail的图片引擎当然不会让我查看源代码,只好搞一段落。sigh...关键是在搞清600K的文件到底存了些什么,可惜没什么好的工具,jpg的编码又过于复杂555555555

ps.查阅JPEG文档时,我发现的DCT==The Discrete Cosine Transform==离散余弦变换。@@~

随机文章:

3 Comments

  1. mediocre 2006-09-5、8:41 下午

    你才知道dct什么意思啊

  2. 无叶 2006-09-8、1:16 上午

    我以前只知道FFT...

  3. fleming 2006-09-8、5:39 下午

    任何改变contrast、Brightness的代码行为都会导致色彩的变化,但看背景好像不是如此。感觉有点像通过网页代码改了Hue值,但这与图像大小如何relate应该就是那些象素、RGB之类的关系了。(偶也不太懂,上面的话全是瞎说,sigh,可惜贴不了图片。)

Add a Comment