gpt4 book ai didi

java - 调整 .GIF 图像的大小

转载 作者:行者123 更新时间:2023-11-30 11:35:33 33 4
gpt4 key购买 nike

我有一个动画 .GIF 图像,我想在 java 中调整它的大小,但是当尝试使用传统方法时,它似乎不起作用:

ImageIcon esclamativoMid = null;
//... search my file...
if(name.equalsIgnoreCase("esclamativo.gif"))
esclamativoMid = new ImageIcon(f.getAbsolutePath());
myEnumMap.put(Resolution.MID, esclamativoMid);

for(Resolution r: Resolution.values()){
if(r != Resolution.MID){
int w = esclamativoMid.getIconWidth()*(r.ordinal()+1)/2;
int h = esclamativoMid.getIconHeight()*(r.ordinal()+1)/2;
BufferedImage bi = new BufferedImage(w, h, BufferedImage.TYPE_INT_ARGB);
Graphics2D g2d = (Graphics2D)bi.createGraphics();
g2d.addRenderingHints(new RenderingHints(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY));
g2d.drawImage(esclamativoMid.getImage(), 0, 0, w, h, null);
myEnumMap.put(r, new ImageIcon(bi));
}
}

当我尝试使用该代码显示图像时:

new JLabel(myEnumMap.get(currentRes));

仅当 Resolution.MID(即直接从文件加载的图像)时,我才得到 .GIF

最佳答案

Java 有一个简单的图像缩放库,称为 imgscalr。

该库实现了几种不同的图像缩放方法,并且会根据您的要求选择最适合您的方法,或者为您提供最快或最好看的方法(如果您要求的话)。

使用非常简单,就是一堆静态方法。最简单的用例是:

BufferedImage scaledImage = Scalr.resize(myImage, 200);

所有操作都保持图像的原始比例,因此在这种情况下,您要求 imgscalr 在 200 像素宽和 200 像素高的范围内重新调整图像大小,默认情况下它会自动选择最好看和最快的方法因为它没有指定。

关于java - 调整 .GIF 图像的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15054431/

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