我有一个扫描图像,我正在用java applet查看。该图像为jpeg格式。当我在Internet Explorer中查看相同的图像时,它看起来更清晰。我想让我的应用程序中的图像质量与我在IE中看到的一样清晰。任何想法如何锐化在Java中呈现的图像?锐化java applet中的图像
感谢,
埃利奥特
我有一个扫描图像,我正在用java applet查看。该图像为jpeg格式。当我在Internet Explorer中查看相同的图像时,它看起来更清晰。我想让我的应用程序中的图像质量与我在IE中看到的一样清晰。任何想法如何锐化在Java中呈现的图像?锐化java applet中的图像
感谢,
埃利奥特
我严重怀疑IE积极锐化图像,所以可能发生的事情是你以这样的方式为,质量降低显示在你的小程序中的图像(可能缩放它)。你可以发布一些代码吗?
考虑到这是一个扫描图像,我认为它是一种最有可能包含文本的文档。我相信IE默认使用bilinear sampling算法来缩放图像,这可能会为这些图像产生更好的效果。无论如何,当您渲染图像时需要修改缩放算法以确保质量。
这里有一个简单的例子,说明设置缩放算法是双线性,这可能会或可能不会给你正确的结果,我会继续用不同的算法尝试,直到你得到正确的结果。 (见RenderingHints并查找设置以`VALUE_INTERPOLATION _...“)
私人浮动xScaleFactor,yScaleFactor = ...; 私人的BufferedImage originalImage = ...;
public void paintComponent(Graphics g) {
Graphics2D g2 = (Graphics2D)g;
int newW = (int)(originalImage.getWidth() * xScaleFactor);
int newH = (int)(originalImage.getHeight() * yScaleFactor);
g2.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
RenderingHints.VALUE_INTERPOLATION_BILINEAR);
g2.drawImage(originalImage, 0, 0, newW, newH, null);
}
还检查了这article一些洞察各种性能的关注和使用,以确保一切运作良好。
事实证明,这是尼尔·科菲提出了一个简单的缩放problme。谢谢你指着我在正确的方向。 埃利奥特 – Elliott 2010-05-30 18:43:11