http://cafefiles.naver.net/20130606_179/rise1925_1370463189365ukv60_png/%c1%a6%b8%f1_%be%f8%c0%bd.png
我试着用java中的双三次算法调整字符图像的大小。但正如你所看到的,图像的连通性被破坏了。。。我刚做了个密码。。
public BufferedImage scaleImage(BufferedImage img, int width, int height,
Color background) {
BufferedImage newImage = new BufferedImage(width, height,
BufferedImage.TYPE_BYTE_BINARY);
Graphics2D g = newImage.createGraphics();
try {
g.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
RenderingHints.VALUE_INTERPOLATION_BICUBIC);
//g.setBackground(background);
//g.setColor(Color.BLACK);
g.clearRect(0, 0, width, height);
g.drawImage(img, 0, 0, width, height, this);
} finally {
g.dispose();
}
return newImage;
}
我做错什么了?
1条答案
按热度按时间wbgh16ku1#
最初我只是想说use.getscaledinstance(),但我读了一篇关于java映像和缓冲映像api良好实践的文章。
https://today.java.net/pub/a/today/2007/04/03/perils-of-image-getscaledinstance.html
这是我认为你需要的密码
您正在将新的重新调整大小的图像设置为二进制(读作黑白ie 1和0)图像。一个好的做法是总是将重新缩放的图像设置为与重新缩放所基于的图像相同的类型,并使用转换方法更改其类型。