gpt4 book ai didi

Java:使用WritableRaster.setRect来叠加图像?

转载 作者:行者123 更新时间:2023-12-01 16:12:02 26 4
gpt4 key购买 nike

我一直在研究 Java 中的一些成像功能,试图将一个图像叠加在另一个图像上。就像这样:

BufferedImage background = javax.imageio.ImageIO.read(
new ByteArrayInputStream(getDataFromUrl(
"https://www.google.com/intl/en_ALL/images/logo.gif"
))
);
BufferedImage foreground = javax.imageio.ImageIO.read(
new ByteArrayInputStream(getDataFromUrl(
"https://upload.wikimedia.org/wikipedia/commons/e/e2/Sunflower_as_gif_small.gif"
))
);

WritableRaster backgroundRaster = background.getRaster();
Raster foregroundRaster = foreground.getRaster();

backgroundRaster.setRect(foregroundRaster);

基本上,我试图叠加这个:https://upload.wikimedia.org/wikipedia/commons/e/e2/Sunflower_as_gif_small.gif
flower
关于此:https://www.google.com/intl/en_ALL/images/logo.gif
alt text

产品显示为:/image/ep3XE.png
crappy image

从我看到的例子来看,这似乎是合适的方法。我是不是少了一步?有更好的方法来处理这个问题吗?感谢您的回复。

最佳答案

看来我的处理方式完全错误。 Sun forums 中概述了此解决方案完美运行(复制到这里):

import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.*;
import javax.imageio.ImageIO;
import javax.swing.*;

class TwoBecomeOne {
public static void main(String[] args) throws IOException {
BufferedImage large = ImageIO.read(new File("images/tiger.jpg"));
BufferedImage small = ImageIO.read(new File("images/bclynx.jpg"));
int w = large.getWidth();
int h = large.getHeight();
int type = BufferedImage.TYPE_INT_RGB;
BufferedImage image = new BufferedImage(w, h, type);
Graphics2D g2 = image.createGraphics();
g2.drawImage(large, 0, 0, null);
g2.drawImage(small, 10, 10, null);
g2.dispose();
ImageIO.write(image, "jpg", new File("twoInOne.jpg"));
JOptionPane.showMessageDialog(null, new ImageIcon(image), "",
JOptionPane.PLAIN_MESSAGE);
}
}

关于Java:使用WritableRaster.setRect来叠加图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/769531/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com