gpt4 book ai didi

java - 将图像调整为固定大小,如果需要添加边框

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:21:35 25 4
gpt4 key购买 nike

我需要制作从 flickr 下载的图像以适应 500x500 的形状。如果宽高比不是 1:1,则应在顶部/底部或左侧/右侧添加黑条以填充空白区域。透明背景也可以。重要的是 500x500 并且在不裁剪的情况下调整大小。我怎么能在java中做到这一点?

最佳答案

克里斯,

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

它唯一不会为您做的是自动填充缩放图片和完美正方形 500x500 尺寸之间的差异,但您可以将图像缩放到类似 498x498 的大小 -- 它会给你一个适合主要尺寸(水平或端口取决于方向)的比例结果,然后你可以 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用于调整拟合行为、图像质量、操作速度等。

您还可以在返回图像 ( here ) 之前将任何预定义的 OP 作为最后一个参数传递给调整大小或填充(或任何其他操作)。

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

在过去几年中,imgscalr 已部署在生产中的许多服务器和客户端场景中。如果您有机会试用该库,我很乐意听到您的反馈。

关于java - 将图像调整为固定大小,如果需要添加边框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11618205/

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