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



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

我目前使用的是谷歌脚本,据我所知,它没有原生的图像库。

有没有标准的算法或类似的算法可以让我使用原始二进制数组,知道它代表JPEG图像,来实现这样的转换?

我想这不是你想要的答案,但。。。

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

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

如果你需要一个快速的解决方案,并且对性能没有太严格的要求,那么使用第三方服务为你转换它,或者使用已知的库创建你自己的库,比如libjpeg或Java的ImageIO等,可能是你的最佳选择。

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

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

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

可用的图像转换

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

最新更新