将一些图片添加到 BufferedImage 然后保存
Posted
技术标签:
【中文标题】将一些图片添加到 BufferedImage 然后保存【英文标题】:Adding some pictures to a BuffredImage then Save it 【发布时间】:2015-10-20 04:41:49 【问题描述】:我的总体想法是制作一个 Sprite-Sheet-Maker 我的意思是该程序将:
收集多张图片,例如“1.bmp”、“2.png”和“3.jpg” 创建新的 BuffredImage 变量并在其上绘制 3 张图片(同时在 JPanel 上绘制 BuffredImage) 保存最终图片“Final.png”
我正在考虑在一个循环中进行第一步和第二步,因为我有一个 JList
包含所有图片的路径。
为此,我在 Eclipse 上使用了 Java 窗口构建器,我制作了表单并尝试在 Panel
上测试一个简单的代码。
Panel panel = new Panel(); //Work
panel.setBackground(Color.BLUE); //Work
BufferedImage img = new BufferedImage(5,5,5); //Work
Graphics g = null ; //Work
panel.paintComponents(g); //work
g.setColor(Color.BLACK); //ERROR---------------------ERROR
g.fillRect(0, 0, 50, 50);
问题不仅在于该代码,而且在于所有想法,所以请您的任何想法都可以帮助我,甚至是我项目的一部分的解决方案的一部分,所以请对任何想法发表评论你有。
【问题讨论】:
【参考方案1】: g.setColor(Color.BLACK);//error
自从
Graphics g = null ;//null value, you are not create any obeject
在null
值上,我们无法执行任何操作。
您必须在JPanel
类中覆盖paintComponent
方法,然后您将收到Graphics
对象。
JPanel panel = new JPanel()
@Override
public void paintComponent(Graphics g)
super.paintComponent(g);
g.setColor(Color.BLUE);
g.fillRect(0, 0, 100, 100);
;
frame.add(panel);//added to frame.
See this link
【讨论】:
好的,如何将“Graphics g”与 JPanel 关联起来?? 你想添加到面板吗? 我希望能够在 jpanel 上画画 覆盖paintComponent
方法。看到那个链接【参考方案2】:
-
使用
GridLayout
创建一个JPanel。
创建 3 个 JLabel,每个 JLabel 包含每个图像的图标。然后将每个标签添加到面板中。
要创建任何 Swing 组件的图像,您可以使用 Screen Image 类。
【讨论】:
以上是关于将一些图片添加到 BufferedImage 然后保存的主要内容,如果未能解决你的问题,请参考以下文章