如何在没有图像库的情况下转换或操作存储为blob的JPEG

时间:2013-08-14 12:37:01

标签: image-processing google-apps-script jpeg

我有一个JPEG图像作为blob存储在内存中,我希望对它应用一些基本的转换(例如调整大小,转换为灰度,旋转等)。

我目前正在使用Google Scripts,据我所知,它没有原生图像库。

是否有标准算法或类似算法允许我使用原始二进制数组,知道它代表JPEG图像,以实现这种转换?

2 个答案:

答案 0 :(得分:1)

我猜不是你要找的答案,但......

为了能够使用JPEG文件作为输入进行图像处理,您需要解码图像。实际上,90/180/270度旋转,翻转和裁剪可以作为无损操作,因此不需要解码图像数据。但是对于任何更高级的东西,比如调整大小,你需要使用解码图像。

用于压缩标准JPEG格式的图像数据的文件结构(JIF ​​/ JFIF)和算法都已明确定义并正确记录。但与此同时,规范也相当复杂。如果你有时间并且知道自己在做什么,这当然是可行的。如果你很幸运,并且你的JPEG blob都以相同的方式编写,那么你可能只会实现一些规范。但即使这样,你也需要(重新)实现规范的大部分内容,而这可能是不值得的。

使用第三方服务为您转换,或使用已知库(如libjpeg或Java的ImageIO等)创建自己的服务可能是您最好的选择,如果您需要快速解决方案,并且没有严格的绩效要求。

答案 1 :(得分:0)

Apps Script中没有直接的图像处理功能。您可以将Python作为Web服务公开,并从Apps脚本中调用它,或者使用Drive REST API从Python应用程序访问文件或使用任何api webservices。

GAE Python具有图像处理功能,请查看以下网址:

https://developers.google.com/appengine/docs/python/images/

可用的图像转换

图像服务可以调整图像大小,旋转,翻转和裁剪图像,以及增强照片。它还可以将多个图像合成为一个图像。