したがって、質問は次のとおりです。
- これは、Catalystフレームワークを利用するアプリケーションを報告しています
- コントローラで、QRコード画像を生成し、このURL(生成された画像の)を特定のビュー/フロントエンドに渡したいですか?注:コントローラーからビューにbinaryまたはbase64データを渡したくないですか?
- $ c-> stash-> {Images}=????に何を隠しておくべきですか
何かアイデア、ヒント?案内してください...
したがって、質問は次のとおりです。
何かアイデア、ヒント?案内してください...
個人的には、ビューを完全にバイパスし、このような状況でコントローラーから直接画像を返すようにコンテンツタイプと本文を設定します。サーバーへの別の呼び出しで画像を取得できるように画像をファイルに書き出すことは、賢明でもスケーラブルでもないようです。<img src="..."/>
最終的に、非常に非正統的なことをしているのでない限り、とにかくを使用してページから画像を要求することになります。
package SomeController;
...
sub qrcode :Local {
my ($self, $c, @args) = @_;
my $png;
eval { $png = ... } } ||
$c->res->redirect($c->uri_for('/static/images/sorry_qrcode_failed.png'));
$c->res->content_type('image/png');
$c->res->body($png);
}
...そしてあなたのページリクエスト
<img src="/somecontroller/qrcode/foo/bar" />
お役に立てば幸いです。
注:コントローラーからビューにbinaryまたはbase64データを渡したくないですか?
これは質問なのか声明なのか、よくわかりません。QRを生成するための情報をビューに渡すと、ビューが実際の画像を生成します。
ビューを介してQRを生成したくない場合、またはバイナリデータを渡したくない場合は、URL(httpまたはファイル)の1つのオプションしか残っていません。
Catalyst用のQRCodeビューを使用することをお勧めします。
そうすれば、QRCode画像がデータから自動的に生成され、画像をサーバーに保存する必要がなくなり、スペースを占有します。それは私が実際にやっていることであり、それは非常に便利です:)