Textimage
Image Effectsのテキストオーバーレイエフェクトを使用して、画像上にテキストを重ねた動的な画像を生成する機能を提供するモジュール。
textimage
インストール
composer require 'drupal/textimage:8.x-4.6'
composer require 'drupal/textimage:8.x-4.3'
概要
TextimageはGD2およびFreeTypeライブラリを使用して、画像にテキストを追加する機能を提供する強力なDrupalモジュールです。Image Effectsモジュールの「Text overlay」エフェクトと深く統合され、カスタマイズ可能なテキストオーバーレイを持つ画像をオンザフライで生成します。
このモジュールはTextフィールドとImageフィールドの両方にフィールド表示フォーマッタを提供し、コンテンツ編集者がフィールド値からスタイル付き画像を自動的に生成できるようにします。また、開発者がTextimage画像を動的に生成するための包括的なプログラムAPIも提供します。Token対応により、Node、User、Fileのコンテキストに基づく動的なテキスト置換が可能です。
Textimageは複数の生成方法をサポートしています:コンテンツタイプの表示設定でフィールドフォーマッタを使用する方法、権限を持つユーザーが直接URL生成を行う方法、またはファクトリサービスを介してプログラムで生成する方法があります。生成された画像はSHA256ベースの識別子を使用してキャッシュされ、最適なパフォーマンスを実現します。また、publicとprivateの両方のファイルストレージスキームをサポートしています。
Features
- Image Effectsモジュールの「Text overlay」エフェクトと統合し、デフォルトテキストを動的なフィールド値またはAPI提供のテキストに置換
- Text(text、text_long、text_with_summary、string、string_long)およびImageフィールド用のフィールド表示フォーマッタで、コンテンツをスタイル付きTextimage画像としてレンダリング
- TextimageFactoryサービスによる包括的なTextimage APIで、フルーエントインターフェースを使用したプログラムによる画像生成が可能
- Node、User、FileコンテキストTokenを含む動的テキスト置換のためのToken対応
- 設定可能なテキストセパレータを使用したURLベースのTextimage画像直接生成(権限が必要)
- パフォーマンス向上のために画像生成を別リクエストに延期する遅延画像ビルドオプション
- SHA256ベースのIDを使用したキャッシングメカニズムにより、同一画像の再生成を回避
- 画像スタイルごとにpublicとprivateの両方のファイルストレージスキームをサポート
- プレビューや一時的な画像用の一時画像生成モード(cronで自動クリーンアップ)
- 生成された画像の場所を取得するカスタムTextimage Token([node:textimage-uri:...]と[node:textimage-url:...])
- 設定可能なデフォルト画像フォーマット(PNG、JPEG、GIF)とスタイルごとのオーバーライド機能
- ファイル保存先スキームを含むTextimage固有オプションによる画像スタイルの拡張
Use Cases
動的な見出しとタイポグラフィ
テキストフィールドをカスタムフォント付きのスタイル画像に変換して、視覚的にリッチな見出しを作成します。ロゴ、芸術的なヘッドライン、特殊な書体など、Webフォントだけでは実現できない一貫したブランドタイポグラフィが必要なサイトに有用です。
パーソナライズされた画像
[node:author:name]や[current-user:name]などのTokenを使用してパーソナライズされた画像を生成し、パーソナライズされたバッジ、証明書、ウェルカムメッセージなど、ユーザー固有のコンテンツを表示するカスタマイズされたグラフィックを作成します。
画像の透かし
Imageフィールドフォーマッタを使用して、著作権表示、写真家のクレジット、サイトブランディングなどのテキストを、表示時にアップロードされた画像に自動的にオーバーレイします。
ソーシャルメディア画像
記事タイトルと背景画像を組み合わせてOpen GraphまたはTwitter Card画像を動的に生成し、各コンテンツがユニークでブランド化されたソーシャル共有画像を持つことを保証します。
Eコマース製品ラベル
製品フィールド値に基づいて更新される価格、割引、在庫状況などのオーバーレイテキスト付きの動的な製品画像を作成します。
多言語画像生成
翻訳されたフィールドからToken置換されたコンテンツを使用して、異なる言語のテキストを含む画像を生成し、画像が適切な言語固有のテキストを表示することを保証します。
Tips
- Textimage用の画像スタイルを作成する際、同じ画像上の異なる位置や異なるスタイルでテキストを配置する必要がある場合は、複数のText overlayエフェクトを追加してください。
- テキストフィールドフォーマッタの「Defer building」オプションを使用して、別のリクエストで画像を生成することでページ読み込み時間を改善できます。
- 高トラフィックサイトで最高のパフォーマンスを得るには、生成された画像がCDNまたはリバースプロキシキャッシュを通じて提供されるようにしてください。
- URL生成用のテキストセパレータ(デフォルト:---)はカスタマイズできますが、テキストコンテンツに含まれる可能性のある文字は避けてください。
- 生成された画像のアクセス制御が必要な場合は、画像スタイルのTextimageオプションでImage destinationを「private」に設定してください。
- 一時的なTextimageファイル(APIでsetTemporary(TRUE)で作成されたもの)はcron実行時に自動的にクリーンアップされます。
Technical Details
Admin Pages 2
/admin/config/media/textimage
デフォルトの画像フォーマット、デフォルトフォント、URL生成オプション、メンテナンスユーティリティを含むグローバルなTextimage設定を構成します。
/admin/config/media/textimage/cleanup
Textimageで生成されたすべての画像ファイルの削除、すべての画像スタイルのフラッシュ、Textimageキャッシュのクリアを行う確認フォーム。
権限 1
Hooks 8
hook_file_download
textimageディレクトリ配下のファイルへのアクセスを制御します。textimageパス内の有効な画像に対して適切なヘッダーを返します。
hook_cron
cron実行時に、利用可能なすべてのファイルスキームから一時的なTextimage画像ファイルをクリーンアップします。
hook_cache_flush
キャッシュクリア操作時にフラッシュされるキャッシュビンとして「textimage」を返します。
hook_token_info
生成された画像のURIとURLを取得するためのTextimage Tokenを定義します。
hook_tokens
Nodeフィールド設定に基づくTextimage Tokenの置換を提供します。
hook_image_style_flush
画像スタイルがフラッシュされた時のTextimage固有のクリーンアップを処理します。
hook_image_style_presave
画像スタイルが保存される前にデフォルトのTextimageサードパーティ設定を設定します。
hook_form_image_style_form_alter
画像スタイル編集フォームに「Textimageオプション」フィールドセットを追加し、Textimage固有のオプションを設定できるようにします。
Troubleshooting 6
Image Effectsモジュールの「Text overlay」エフェクトを含む画像スタイルを少なくとも1つ作成していることを確認してください。Text overlayエフェクトを持つスタイルのみがTextimage互換として認識されます。
以下を確認してください:1)フォントファイルがアクセス可能でImage Effects設定で正しく設定されている、2)PHPでGD2とFreeTypeが有効になっている、3)ファイルシステムの権限がpublic/privateファイルディレクトリへの書き込みを許可している。
Tokenコンテキストが利用可能であることを確認してください。Node Tokenはフィールドがノードエンティティに添付されている必要があります。User Tokenは現在のユーザーを使用します。File TokenはImageフィールドフォーマッタでのみ利用可能です。
URLベースの生成には「Generate Textimage URL derivatives」権限が必要です。適切なユーザーロールにこの権限を付与してください。
Textimageとして表示されているフィールド内でTextimage Tokenを使用することを避けてください。モジュールは無限ループを検出して防止し、警告メッセージをログに記録します。
設定ページの「Textimageをクリーンアップ」ボタンを使用してTextimageキャッシュをクリアするか、特定の画像スタイルをフラッシュしてキャッシュされた画像を再生成してください。
Security Notes 3
- URLベースの生成はデフォルトで無効になっています。有効にした場合、「Generate Textimage URL derivatives」権限を持つユーザーのみがURL経由で画像を生成できます。
- Textimageはファイルアクセス制御を尊重します - privateファイルストレージに保存された画像を表示するには適切なアクセス権限が必要です。
- Token置換はコンテキストを認識し、ユーザーが基礎データへのアクセス権を持つTokenのみを解決します。