Java填充图像

13

我正在开发一个在线图像编辑工具。我想知道如何在图像右侧添加白色空间,以此为例,可以查看这个图片 输入图像描述

3个回答

18

你想从一张已有的图片中创建一个新的图片,在这个新的图片中左右两侧要有白色空间吗?

假设未填充的图片是一个称为'image'的BufferedImage。假设你希望每侧都有'w'个像素的空白区域。你需要做的是创建一个比原来更宽的新BufferedImage,然后将整个图像涂成白色,并最终将较小的图像绘制在其上方:

BufferedImage newImage = new BufferedImage(image.getWidth() + 2 * w, image.getHeight(), image.getType());

Graphics g = newImage.getGraphics();

g.setColor(Color.white);
g.fillRect(0, 0, image.getWidth() + 2 * w, image.getHeight());
g.drawImage(image, w, 0, null);
g.dispose();

3

如果有人遇到类似的问题,我强烈推荐使用imgScalr。你只需要加一行代码imageSource= Scalr.pad(imageSource,pad,Color.White);就可以添加填充。


非常感谢你提供的好建议! - narzero
3
imgScalr似乎是一个不错的库,但我没有看到任何方式只添加两个边框(即左右边),填充始终会添加到所有4个边框。当然,你可以之后裁剪来删除上下边框的填充,但这不太干净和易读。 - Rauni Lillemets

2
创建一个正确尺寸的新BufferedImage对象;使用Graphics.fillRect()将其涂成白色;用drawImage()将图像绘制到左上角;然后保存你的新图像。

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