将一张图片合并到另一张图片的指定位置,并保存为新图片?

3

如何保存合并两张图片后生成的图片?

我先有一张图片,想在指定位置插入一些文字...这一部分我已经完成了。现在新的任务是将最后生成的图片放到给定位置的另一张图片模板上,并将其保存为一个新的jpg图片到我的工作目录中。


请提供关于您正在尝试做什么以及您正在尝试执行的环境的更多细节。 - Syntactic
我编辑了我的答案,因为你忽略了正确的解决方案。 - stacker
1个回答

6
这是一个使用Java2D的图像叠加示例。由于您还标记了[jquery],我不确定您是否想使用jquery还是java。
我的意思是第二个片段,已修复并运行。
import java.awt.AlphaComposite;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.net.URL;

import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class WaterMark {
    public static void main(String[] args) throws IOException {
        URL url = new URL("http://sstatic.net/so/img/logo.png");
        BufferedImage im = ImageIO.read(url);
        URL url2 = new URL("http://sstatic.net/sf/img/logo.png");
        BufferedImage im2 = ImageIO.read(url2);
        Graphics2D g = im.createGraphics();
        g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.4f));
        g.drawImage(im2, (im.getWidth()-im2.getWidth())/2, (im.getHeight()-im2.getHeight())/2, null);
        g.dispose();

        display(im);
        ImageIO.write(im, "jpeg", new File("sample_output.jpeg"));
    }

    public static void display(BufferedImage image) {
        JFrame f = new JFrame("WaterMark");
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.getContentPane().add(new JLabel(new ImageIcon(image)));
        f.pack();
        f.setLocationRelativeTo(null);
        f.setVisible(true);
    }
}

我尝试过这个方法,但这并不是解决我的问题的办法......这段代码用于在图像上合并文本,而不是在图像上合并图像......无论如何,感谢您的回答。 - Tijo K Varghese
哇,这看起来真的很不错! - Bas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接