快速业务通道

在Java应用程序中创建图像 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-24
R 规则设置alpha 合成值,把颜色组件设置为零,又通过设置alpha值为0.0f,使之透明。然后我们填充一个覆盖整个图像区域的矩形。我们不必设置颜色值,因为根据 CLEAR 规则,每个像素的前景和背景色所占成分都是零,所以这两者都不参与像素的生成。但我们仍要填充该矩形,因为这将确定被操作的图像像素。

这里,我们可以稍微了解一下怎样控制图像的质量。

在Java应用程序中创建图像(3)

时间:2010-03-27

着色微调

对着色操作的许多方面而言,都有一个在质量和速度间选择的问题。着色操作就像大多数事情一样 — 质量是需要代价的,而这里的代价就是处理时间。所有的着色操作都有缺省设置,其中存在一个选择,缺省设置是特定于平台的,但您可以通过调用用于着色的Graphics2D对象的setRenderingHint()方法自己选择。虽然只有一些微调,如果您的计算机不支持与您指定的微调相对应的着色操作选项,这些微调就无法生效。

通过添加以下对 createSprite()方法的调用,可以确保得到由我们的alpha 合成操作可能生成的最好效果。

BufferedImage createSprite(int spriteSize) {  // Create image with RGB and alpha channel  BufferedImage sprite = new BufferedImage(spriteSize, spriteSize, BufferedImage.TYPE_INT_ARGB);  Graphics2D g2D = sprite.createGraphics(); // Context for buffered image  // Set best alpha interpolation quality  g2D.setRenderingHint(RenderingHints.KEY_ALPHA_INTERPOLATION, RenderingHints.VALUE_ALPHA_INTERPOLATION_QUALITY);  // Clear image with transparent alpha by drawing a rectangle  g2D.setComposite(AlphaComposite.getInstance(AlphaComposite.CLEAR, 0.0f));  Rectangle2D.Double rect = new Rectangle2D.Double(0,0,spriteSize,spriteSize);  g2D.fill(rect);  // plus the rest of the method... }

RenderingHints类定义了多种着色微调,它们存储在一个映射集的Graphics2D对象里。setRenderingHint()方法的参数是一个键以及对应的键值。在我们的代码中,第一个参数是代表 alpha 合成微调的键,第二个参数是该微调的值。该微调的其它可能的值有 VALUE_ALPHA_INTERPOLATION_DEFAULT,代表平台缺省值;以及 VALUE_ALPHA_INTERPOLATION_SPEED,代表追求速度而不是质量。

您还可以为下面的键提供微调:

描述
KEY_ANTIALIASING 决定是否使用抗锯齿。当着色有倾斜角度的线时,通常会得到一组阶梯式的像素排列,使这条线看上去不平滑,经常被称为锯齿状图形。抗锯齿是一种技术,它设置有倾斜角度的线的像素亮度,以使线看起来更平滑。因此,这个微调是用来决定在着色有倾斜角度的线时是否在减少锯齿状图形上花费时间。可能的值有 VALUE_ANTIALIAS_ON, _OFF 或 _DEFAULT。
KEY_COLOR_RENDERING 控制颜色着色的方式。可能的值有 VALUE_COLOR_RENDER_SPEED, _QUALITY 或 _DEFAULT。
KEY_DITHERING 控制如何处理抖动。抖动是用一组有限的颜色合成出一个更大范围的颜色的过程,方法是给相邻像素着色以产生不在该组颜色中的新的颜色幻觉。可能的值有 VALUE_DITHER_ENABLE, _DISABLE 或 _DEFAULT。
KEY_FRACTIONALMETRICS 文本的质量。可能的值有 VALUE_FRACTIONALMETRICS_ON, _OFF 或 _DEFAULT。
KEY_INTERPOLATION 确定怎样做内插。

在对一个源图像做变形时,变形后的像素

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号