我有一个JPEG图像作为blob存储在内存中,我希望对它应用一些基本的转换(例如调整大小,转换为灰度,旋转等)。
我目前正在使用Google Scripts,据我所知,它没有原生图像库。
是否有标准算法或类似算法允许我使用原始二进制数组,知道它代表JPEG图像,以实现这种转换?
答案 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/
可用的图像转换
图像服务可以调整图像大小,旋转,翻转和裁剪图像,以及增强照片。它还可以将多个图像合成为一个图像。