2010-05-28 55 views
1

我有一個掃描圖像,我正在用java applet查看。該圖像爲jpeg格式。當我在Internet Explorer中查看相同的圖像時,它看起來更清晰。我想讓我的應用程序中的圖像質量與我在IE中看到的一樣清晰。任何想法如何銳化在Java中呈現的圖像?銳化java applet中的圖像

感謝,

埃利奧特

回答

2

我嚴重懷疑IE積極銳化圖像,所以可能發生的事情是你以這樣的方式爲,質量降低顯示在你的小程序中的圖像(可能縮放它)。你可以發佈一些代碼嗎?

+0

事實證明,這是尼爾·科菲提出了一個簡單的縮放problme。謝謝你指着我在正確的方向。 埃利奧特 – Elliott 2010-05-30 18:43:11

0

考慮到這是一個掃描圖像,我認爲它是一種最有可能包含文本的文檔。我相信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一些洞察各種性能的關注和使用,以確保一切運作良好。