我正在尝试创建一个可以打开两个具有相同尺寸的 jpeg 的程序,并创建一个新的 jpeg,将这两个图像并排放置,而不改变枯萎图像。
创建新图像的代码是这样的:
public static Picture sumPicturesHorizontally(Picture left, Picture right) {
BufferedImage newImage = new BufferedImage(
left.getWidth() + right.getWidth(),
left.getHeight(),
left.getImage().getType());
Graphics2D g = (Graphics2D) newImage.getGraphics();
g.drawImage(left.getImage(), 0, 0, null);
g.drawImage(right.getImage(), left.getWidth(), 0, null);
Picture p = new Picture(newImage);
return p;
}
(图片只是我的一个包含 BufferedImage 和该图像尺寸的包装类)
在大多数情况下,这是可行的。但是,输出的图像不仅仅是并排的左右图像,似乎有些东西正在修改左右图像之间的边界。
我有一个黄色方块和一个红色方块;我的源图像是 1 恒定颜色。但是,总和图像在新边框周围有一些原始图像中没有的伪影。这是我正在谈论的放大屏幕截图:
如果我在源图像上缩放到相同级别,我不会在边缘看到相同的伪影。我希望它是黄色的边缘,然后只是红色。不应该有不同深浅的黄色和红色。是否有一些配置可以让它以这种方式运行,或者有不同的渲染方法?
另外,我通常不使用图形,这种边缘融合有什么名称吗?谢谢您的帮助!