logo

アルパカログ

GCP Cloud Functions(GCF)を使って画像に文字を埋め込む方法

Twitterなどでよく、文字の入った画像を見かけます。

文字を画像に埋め込むのは、ImageMagickというライブラリを使うと実現できます。

このエントリでは、無料で使えるGCPのCloud Functions(GCF)を使って、POSTパラメータで受け取ったテキストを画像に描画するサンプルを作る方法を説明します。

システム構成

システム構成は下記の通りシンプルです。

画像が読み込まれない場合はページを更新してみてください。

一連の処理の流れは次のようになります。

  1. 画像ファイル名をHTTPレスポンスで返す
前準備

事前にGCFのHTTP Tutorialを済ませておきます。

Cloud Storageにバケットを作成しテンプレート画像template.pngという名前で配置します。

任意のディレクトリに下記のサンプルコードをcloneします。

index.js内のバケット名の指定を、自身で作成したバケット名に修正します

const bucketname = 'BUCKET_NAME';
デプロイ

下記コマンドでデプロイします。デプロイは数分で完了します。

$ gcloud beta functions deploy imagemagick --trigger-http --source .
POST してみる

エンドポイントにPOSTしてみましょう。YOUR_ENDPOINTは自身のHTTPトリガーのURLにしてください。

$ curl -X POST -H "Content-Type:application/json" -d '{"text":"こんな風に描けるよ。"}' YOUR_ENDPOINT/imagemagick

Success: xxxxxxxx.pngというファイル名が返ってきたらCloud Storageにファイルができています。

POSTした文字が描画されていれば成功です。

画像が読み込まれない場合はページを更新してみてください。

以上です。

このエントリでは、無料で使えるGCPのCloud Functions(GCF)を使って、POSTパラメータで受け取ったテキストを画像に描画するサンプルを作る方法を説明しました。

GCFの他の使い方が見たい

GCFの他の使い方が見たい方は下記のエントリが参考になりそうです。

参考リンク