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