+-
java-将图像调整为固定大小,如果需要,添加边框
我需要制作从flickr下载的图像以适合500×500的形状.如果长宽比不是1:1,则应在顶部/底部或左侧/右侧添加黑条以填充空白.透明背景也可能起作用.重要的是500×500,并且无需裁剪即可调整大小.如何在 Java中做到这一点?
最佳答案
克里斯,

您可以尝试imgscalr;它实现了Java中用于缩放图像的最优化方法,并且(默认情况下)在调整大小时也遵循原始图像的方向和比例…它还提供了非常方便的pad(…)操作,可为您提供所需的边框.

它唯一不会为您做的事就是自动填充缩放后的图片与完美正方形的500×500尺寸之间的差异,但是您可以将图像缩放到498×498之类的尺寸-它将为您提供与主要尺寸相称的比例结果( horz或port(取决于方向)),然后您可以pad(2)给它一个漂亮的边框,其中包含您想要的任何颜色,包括透明的颜色.

例如,代码看起来像这样(使用静态导入以提高可读性):

import org.imgscalr.Scalr.*;
import java.awt.Color;

public static BufferedImage createThumbnail(BufferedImage img) {
    // Target width of 500x500 is used
    img = resize(img, 500); 
    return pad(img, 2, Color.BLACK);
}

resize()方法使用any number of additional arguments来调整拟合行为,图像质量,操作速度等.

您还可以通过将其作为最后一个arg进行调整大小或填充(或其他任何操作)的方式将其返回(here),然后在返回结果图像之前对其应用任何预定义的OP.

另外,如果您尝试在服务器进程中执行此操作并希望异步运行这些操作,则可以查看AsyncScalr类,该类提供所有相同的功能,但将操作与configurable个扩展线程排队,以避免饱和主机.

过去几年中,imgscalr已在生产中的许多服务器和客户端方案中部署.如果您有机会尝试图书馆,我很想听听您的反馈.

点击查看更多相关文章

转载注明原文:java-将图像调整为固定大小,如果需要,添加边框 - 乐贴网