首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用Java调整图像大小?

如何使用Java调整图像大小?
EN

Stack Overflow用户
提问于 2008-10-28 17:46:13
回答 15查看 166.9K关注 0票数 131

我需要调整PNG,JPEG和GIF文件的大小。我如何使用Java来做这件事?

EN

回答 15

Stack Overflow用户

回答已采纳

发布于 2008-10-28 17:50:25

加载图像后,您可以尝试:

代码语言:javascript
复制
BufferedImage createResizedCopy(Image originalImage, 
            int scaledWidth, int scaledHeight, 
            boolean preserveAlpha)
    {
        System.out.println("resizing...");
        int imageType = preserveAlpha ? BufferedImage.TYPE_INT_RGB : BufferedImage.TYPE_INT_ARGB;
        BufferedImage scaledBI = new BufferedImage(scaledWidth, scaledHeight, imageType);
        Graphics2D g = scaledBI.createGraphics();
        if (preserveAlpha) {
            g.setComposite(AlphaComposite.Src);
        }
        g.drawImage(originalImage, 0, 0, scaledWidth, scaledHeight, null); 
        g.dispose();
        return scaledBI;
    }
票数 90
EN

Stack Overflow用户

发布于 2010-12-25 04:01:23

FWIW刚刚发布了(Apache2,托管在GitHub上)一个简单的Java图像缩放库imgscalr (可在Maven central上获得)。

该库实现了几种不同的图像缩放方法(包括Chris Campbell的增量方法,并进行了一些微小的增强),如果您要求,它将为您选择最优的方法,或者为您提供最快或最好的外观(如果您要求)。

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

代码语言:javascript
复制
BufferedImage scaledImage = Scalr.resize(myImage, 200);

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

我从一开始就意识到这看起来像是自我推销(的确如此),但我花了相当多的时间在谷歌上搜索这个完全相同的主题,不断提出不同的结果/方法/想法/建议,并决定坐下来写一个简单的实现,以解决80-85%的用例--当你有一个图像,并可能想要它的缩略图--要么尽可能快,要么尽可能好看(对于那些已经尝试过的人来说,你会注意到即使对足够小的图像进行BICUBIC插值,它看起来仍然是垃圾)。

票数 184
EN

Stack Overflow用户

发布于 2009-02-10 18:41:38

您不需要库就可以做到这一点。你可以用Java本身来做这件事。

Chris Campbell有一篇关于缩放图像的出色而详细的文章--参见this article

Chet Haase和Romain Guy在他们的书Filthy Rich Clients中也有一个关于图像缩放的详细和非常丰富的文章。

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/244164

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档