我正在媒体管理器上做一个网络项目。我上传了高分辨率图片,需要将这些图片转换为低分辨率,以便将生成的图片压缩成更小的尺寸。使用 Java 怎么可能?
如果可能,请发布源代码。
谢谢,纳文
我正在媒体管理器上做一个网络项目。我上传了高分辨率图片,需要将这些图片转换为低分辨率,以便将生成的图片压缩成更小的尺寸。使用 Java 怎么可能?
如果可能,请发布源代码。
谢谢,纳文
不确定我是否正确,但如果您想更改图像的大小,Image 类有一个getScaledInstance方法:
Image theImage = ...
Image scaled = theImage.getScaledInstance(32, -1, Image.SCALE_FAST);
有关详细信息,请参阅Image的文档
我已经看到JAI用于此目的。
如果您不需要对高分辨率图像做任何事情,您可以在图像阅读器上添加一个参数,例如
ImageReadParam param = reader.getDefaultReadParam();
param.setSourceSubsampling(4, 4, 0, 0);
img = reader.read(0);
这将跳过源数据中 4 行/列中的 3 行。
如果你在安装了imagemagick二进制文件的 Linux 服务器上运行,你可以只做一个Runtime.getRuntime.exec()
on /usr/bin/convert
. 只要确保你读/写唯一的名字(你可以File.createTempFile()
用来确保)。