图片缩放“最佳实践”类库:imgscalr

    作者:课课家教育更新于: 2016-01-22 10:31:52

    大神带你学编程,欢迎选课

      imgscalr 是一个对图片进行缩放的 java 类库。

    java 图像缩放类库 imgscalr_java类库_java图片_Java_课课家

      简介

      imgscalr 是一个简单高效(硬件加速)的图片缩放“最佳实践”类库,纯 Java 2D 实现。随着4.0版本的发布,操作图片变得十分容易,都可以使用 resize 进行操作。

      这个类库由 Java 2D 团队主导,提供了在大多数平台基于硬件加速的高效 Java 2D 缩放技术。

      该库还实现了由 Chris CAMpbell 提出的优化增量缩放算法,使得生成缩略图变得好看、快速。

      许可证

      采用Apache 2协议发布。

      解决问题

      在使用 Java 快速调整图像时,可能会遇到下列问题:

      系统类库过多:Image.getScaledInstance()、Graphics.drawImage()、Graphics2D.drawImage(…)、BufferImageOps、AffiNETransforms、Java Advanced Imaging API 等都可以去调用,但是对性能、支持功能不够明确。

      系统内部类库的更迭替代

      性能较低

      不能兼顾效果与性能

      imgscalar 解决了所有问题。

      好处

      100%基于 Java 2D,没有安装任何本地库

      不需要设置特殊的环境变量

      由于没有使用本地库,降低虚拟机崩溃或者多线程风险

      在支持的平台上启用硬件加速(使用优化Java2D的渲染通道)

      速度快:虽然比不上c,但还是很快。

      简单:只需要调用少数静态方法。没有复杂的配置、管理、编码/解码、imgscalr不是图形库,它是一组最常用的图形操作。

      使用

      最简单的用例只需要调用两个参数的方法:

      1BufferedImage thumbnail = Scalr.resize(image, 150);

      通过上述例子,将一张图片按比例缩放为长,宽都不超过150的图片。

      另外,如果想对图像缩放做一些更精细的控制,如使用质量和轻型抗混叠滤波器,我们的方法调用会是这个样子:

      3BufferedImage thumbnail =

      Scalr.resize(image, Scalr.Method.SPEED, Scalr.Mode.FIT_TO_WIDTH,

      150, 100, Scalr.OP_ANTIALIAS);

      值得一提的有几个方法和模型的枚举都在Scalr类中定义。这些枚举连同所有 resize 方法.

      目标

      这个库的目的是为开发人员需要迅速调整或处理图像(使用本地Java提供了正确的或最优化方法)。

      imgscalr 是通用的,可以任何平台上提供其使用基本的Java2D类。imgscalar 同样也为web应用提供了支持,例如可以上传更大的图片及生成数以千计的缩略图或预览。

      这个库并不意味着像JAI一样全面的Java图形库.


课课家教育

未登录