哪个是最好的java库来做cropping.The的目标是保持2倍的zoom.The裁剪图像的清晰度在缩放到2倍的水平时,裁剪图像的侧面变得模糊。我尝试了Java高级成像(JAI)来裁剪渲染提示。我还尝试了RescaleDescriptor(JAI)来增强image.But它只适用于白色background.Is中的黑色粒子。还有其他库可以使用吗?
发布于 2011-05-09 20:41:38
在使用外部库之前,尝试设置这些渲染提示(对于“普通”的swing渲染):
g.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
RenderingHints.VALUE_INTERPOLATION_BILINEAR); // or .._BICUBIC
g.setRenderingHint(RenderingHints.KEY_RENDERING,
RenderingHints.VALUE_RENDER_QUALITY);
g.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);下面的代码生成了这个屏幕截图:

public static void main(String[] args) throws IOException {
BufferedImage o = ImageIO.read(new URL("http://upload.wikimedia.org/wikipedia/en/2/24/Lenna.png"));
final BufferedImage image = o.getSubimage(220, 220, 80, 80);
final int width = image.getWidth() * 4;
final int height = image.getHeight() * 4;
JFrame frame = new JFrame("Test");
frame.setLayout(new GridLayout(1, 2));
frame.add(new JComponent() {
public void paintComponent(Graphics g) {
Graphics2D g2d = (Graphics2D) g;
g2d.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
RenderingHints.VALUE_INTERPOLATION_BILINEAR);
g2d.setRenderingHint(RenderingHints.KEY_RENDERING,
RenderingHints.VALUE_RENDER_QUALITY);
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
g2d.drawImage(image, 0, 0, width, height, null);
}
});
frame.add(new JComponent() {
public void paintComponent(Graphics g) {
g.drawImage(image, 0, 0, width, height, null);
}
});
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(649, 351);
frame.setVisible(true);
}发布于 2011-05-09 20:32:52
我推荐ImageJ,这是一个很棒的图像处理库。
以下是裁剪的代码示例:
ImageProcessor ip = //... get the image processor to crop
ip.setRoi(left,top,width,height); //set the "Region Of Interest" (rectangle within the image)
ImageProcessor ip2 = ip.crop();https://stackoverflow.com/questions/5936871
复制相似问题