在渲染之前压缩或调整图像大小

时间:2012-01-09 13:22:20

标签: playframework

请参阅http://www.playframework.org/community/snippets/4

是否可以在将Blob图像渲染到屏幕上之前压缩/调整其大小?

public static void getPicture(long id) {
   Picture picture = Picture.findById(id);
   response.setContentTypeIfNotSet(picture.image.type());
   renderBinary(picture.image.get());
}

2 个答案:

答案 0 :(得分:2)

您可以在play.libs包中使用Image类,该包具有名为resize的静态方法。

签名是

resize(java.io.File originalImage, java.io.File to, int w, int h) 

您显然需要执行额外的步骤将图像保存到文件,然后执行转换,但如果这太多,您可以获取代码的副本并使其与Blob一起使用代替。

或者,如果有任何其他第三方库使用Blob类型,那么这可以很容易地集成。

答案 1 :(得分:0)

如果您正在处理JPEG或其他压缩图像,则无法节省大量压缩图像的磁盘/带宽。在大多数情况下,您可能只会减少一些不值得压缩成本的字节。

对于调整大小JMagick(这是ImageMagick的接口)是一个不错的选择。关于如何使用JMagick调整图像大小,有一个small tutorial

希望有所帮助

相关问题