Java:从文件加载图像,编辑并添加到 JPanel

标签 java image swing jlabel

我想将计算机中的图像加载到 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/

相关文章:

image - 如何获得图像的近似背景色?

javascript - 通过按钮下载图像?

java - Java 选项 -Xmx 代表什么?

java - 如何为QueueBrowser定义队列?

java - 如何通过VBscript或批处理更改Java高级设置?

wpf - 如何将 WPF 控件转换为图像?

java - 如果我更改依赖项列表,最好的做法是在 Maven 中增加我的主要版本号吗?

java - x x x 输入的 JFrame setsize 不是正方形

java - 自定义 JTableHeader 导致 NullPointerException

java - 调整大小时 JDesktopPane 的内容消失 - Java Swing