我想将计算机中的图像加载到 2D Graphics 中,以便随后对其进行编辑,然后我想将其添加到 JPanel
中。如果您需要查看我的项目,我可以将其发送给您。
void loadImage()
{
FileDialog fd = new FileDialog(new Frame(), "Please choose a file:", FileDialog.LOAD);
fd.show();
if (fd.getFile() != null)
{
File fil = new File(fd.getDirectory(), fd.getFile());
strDirectory = fd.getDirectory();
strFileType = fd.getFile();
mainImage.setIcon(new ImageIcon(fil.toString()));
getFileList(strDirectory);
checkFileType(strFileType);
}
}
提前致谢
最佳答案
要将图像加载到内存中,可以使用ImageIO.read(File)
。要随后对其进行编辑,请通过调用 createGraphics()
从中获取 Graphics2D 实例:
BufferedImage img = ImageIO.read(yourFile);
Graphics2D g = img.createGraphics();
// Draw here on the graphics
g.dispose();
您甚至可以通过在绘制之前设置 RenderingHint 来打开抗锯齿功能:
g.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIASING_ON);
然后,要将其添加到 JPanel,请创建自定义 JComponent 并将该组件的实例添加到 JPanel:
public class JImageComponent extends JComponent
{
private BufferedImage img;
public JImageComponent(BufferedImage bi)
{
img = bi;
}
@Override
public void paintComponent(Graphics g)
{
g.drawImg(img, 0, 0, this);
}
}
关于Java:从文件加载图像,编辑并添加到 JPanel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6795023/