AP计算机科学A(APcomputer science A)复习备考攻略视频教程
42815 人在学
imgscalr 是一个对图片进行缩放的 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图形库.