用SiemensScreenShot截Java图片的正确方法

M55的屏幕是4096色的,分辨率101*80 。
4096=12Bit
所以如果显示这样一张图,所占用的内存空间是101*80*12Bit=12120Byte 。
用SSS截图的时候,就会扫描指定的12120Byte的地址(FrameBuffer?),然后把这些信息保存到电脑上的BMP文件里 。

用SiemensScreenShot截Java图片的正确方法


但是在Java里,M55是使用256色的,也就是说Java里每个象素占用8Bit的空间,满屏的时候就是101*80*8Bit=8080Byte,这时用SSS截图,应该把选项设成256色
这时SSS截图的时候扫描的就是8080Byte的一个内存块,正好是Java中一屏的信息
如果我们没有把截图的选项设成256色,而是使用默认的4096色的话,得出的图片效果将会是这样的:
可以看到,其实只有1/4的图片是我们想要的,而且颜色也不对 。
至于为什么会这样呢?说起来比较麻烦,而且涉及到计算机图形学的专业领域,也不是少许的篇幅能够讲得清楚的,所以我也不细述了 。
下面发一张用1Bit,即只有黑白两色的选项截的图,这个连我都看不懂的(虽然可以从理论上,通过计算和对比知道哪点是黑,哪点是白,但也没多少意义) 。
^_^有兴趣的机油们可以研究一下哦

在Java里就应该用256色来截
【用SiemensScreenShot截Java图片的正确方法】就是这么简单!

    推荐阅读