ブロブとしてメモリに保存されている JPEG 画像があり、いくつかの基本的な変換 (サイズ変更、グレースケールへの変換、回転など) を適用しようとしています。
現在、私が知る限り、ネイティブの画像ライブラリを持たない Google Scripts を使用しています。
そのような変換を達成するために、JPEG画像を表していることを知って、生のバイナリ配列を操作できる標準アルゴリズムまたは類似のものはありますか?
ブロブとしてメモリに保存されている JPEG 画像があり、いくつかの基本的な変換 (サイズ変更、グレースケールへの変換、回転など) を適用しようとしています。
現在、私が知る限り、ネイティブの画像ライブラリを持たない Google Scripts を使用しています。
そのような変換を達成するために、JPEG画像を表していることを知って、生のバイナリ配列を操作できる標準アルゴリズムまたは類似のものはありますか?
あなたが探している答えではないと思いますが...
JPEG ファイルを入力として使用して画像処理を実行できるようにするには、画像をデコードする必要があります。実際には、90/180/270 度の回転、フリッピング、およびクロッピングはロスレス操作として可能であり、したがって画像データをデコードする必要はありません。ただし、サイズ変更など、より高度な処理を行うには、デコードされた画像を操作する必要があります。
ファイル構造 (JIF/JFIF) と、画像データを標準の JPEG 形式に圧縮するために使用されるアルゴリズムの両方が明確に定義され、適切に文書化されています。しかし同時に、仕様は非常に複雑です。時間があり、自分が何をしているのかを知っていれば、それは確かに実行可能です. 運が良ければ、JPEG ブロブがすべて同じ方法で記述されていれば、仕様の一部だけを実装するだけで済むかもしれません。しかし、それでも、仕様の大部分を (再) 実装する必要があり、それだけの価値はないかもしれません。
サードパーティのサービスを使用して変換するか、libjpeg や Java の ImageIO などの既知のライブラリを使用して独自のサービスを作成することが、迅速な解決策が必要であり、要件が厳しすぎない場合に最適です。パフォーマンス。
Apps Script で利用できる単純な画像処理機能はありません。Python を Web サービスとして公開して Apps Script から呼び出すか、Drive REST API を使用して Python アプリからファイルにアクセスするか、API Web サービスを使用します。
GAE Python には画像処理機能があります。以下の URL を確認してください。
https://developers.google.com/appengine/docs/python/images/
利用可能な画像変換
画像サービスでは、画像のサイズ変更、回転、反転、トリミング、および写真の補正を行うことができます。また、複数の画像を 1 つの画像に合成することもできます。