【发布时间】:2015-12-01 06:24:44
【问题描述】:
我正在做的是非常简单的图像编辑程序,但我遇到了一些问题。我将图像保存在数据库中并将其转换为ImageIcon,以便它可以通过服务器套接字等(可序列化)。
因此,通过 VO,我将 ImageIcon 转换为 GUI 并将其转换为 BufferedImage,以便我可以对其进行编辑。但是由于我必须设置图像类型并且有很多具有不同图像类型的图片(至少看起来如此),所以有些图片变成了我不希望它们成为的东西。
所以,基本上我在问是否有另一种方法可以将ImageIcon 转换为BufferedImage。一些在不设置单一固定图像类型的情况下进行转换的方法。如果没有,我将不得不放弃那部分。
下面是我的部分代码:
private class TableSelectEvent extends MouseAdapter {
@Override
public void mouseClicked(MouseEvent e) {
int selectedRow = table.getSelectedRow();
loadedImageIcon = UserImageReceived.get(selectedRow).getImage();
originalImage = loadedImageIcon.getImage();
selectedImageName = UserImageReceived.get(selectedRow).getFileName();
if (originalImage != null) {
Image rbi = originalImage.getScaledInstance(lblSelectedImage.getWidth(), lblSelectedImage.getHeight(), Image.SCALE_SMOOTH);
lblSelectedImage.setIcon(new ImageIcon(rbi));
bimage = new BufferedImage(originalImage.getWidth(null), originalImage.getHeight(null), BufferedImage.TYPE_INT_ARGB);
// this, BufferedImage.TYPE_INT_ARGB part is the problem I'm having!
Graphics2D bgr = bimage.createGraphics();
bgr.drawImage(originalImage, 0, 0, null);
bgr.dispose();
} else {
System.out.println("originalImage == null");
}
}
}
【问题讨论】:
标签: java bufferedimage imageicon