用SiemensScreenShot截Java图片的正确方法

王朝学院·作者佚名  2008-12-29
窄屏简体版  字體: 小  |  中  |  大  |  超大  

M55的屏幕是4096色的,分辨率101*80。

4096=12Bit

所以如果显示这样一张图,所占用的内存空间是101*80*12Bit=12120Byte。

用SSS截图的时候,就会扫描指定的12120Byte的地址(FrameBuffer?),然后把这些信息保存到电脑上的BMP文件里。

但是在Java里,M55是使用256色的,也就是说Java里每个象素占用8Bit的空间,满屏的时候就是101*80*8Bit=8080Byte,这时用SSS截图,应该把选项设成256色

这时SSS截图的时候扫描的就是8080Byte的一个内存块,正好是Java中一屏的信息

如果我们没有把截图的选项设成256色,而是使用默认的4096色的话,得出的图片效果将会是这样的:

可以看到,其实只有1/4的图片是我们想要的,而且颜色也不对。

至于为什么会这样呢?说起来比较麻烦,而且涉及到计算机图形学的专业领域,也不是少许的篇幅能够讲得清楚的,所以我也不细述了。

下面发一张用1Bit,即只有黑白两色的选项截的图,这个连我都看不懂的(虽然可以从理论上,通过计算和对比知道哪点是黑,哪点是白,但也没多少意义)。

^_^有兴趣的机油们可以研究一下哦

总结:用SSS给M55截图时,一般情况下用4096色来截,

在Java里就应该用256色来截

就是这么简单!

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航