1. ホーム
  2. ruby-on-rails

[解決済み] Railsでpng画像を文字列形式で表示するには?

2022-02-09 16:19:20

質問

Rubyで、PNG形式のQRコード画像のデータを返す関数があるのですが、以下のように動作します。

puts generate_qr_code("this is a test")

�PNG

IHDk�XTPLTE,�)�[��tRNS@��f�IDATx���Kr��M�ѭ8)
                                                �<��q����(�x��H�$I�$I�$I�$I�$�+����

この文字列を受け取ってRailsのビューに表示する最も簡単な方法は何でしょうか?

このようなことを可能にする方法として、私はいくつかのアイデアを持っています。 @img_data 変数に格納し、ビューでそれを表示する方法です。あるいは、ファイルに保存して、そのURLを渡すこともできます。生成された画像は一時的にしか使用されないので、データをどこかに保存する必要はないでしょう。

どのように解決するのですか?

  def render_qr_code                                                               
    response.headers['Cache-Control'] = "public"                                                    
    response.headers['Content-Type'] = "image/png"                                 
    response.headers['Content-Disposition'] = "inline"                                              
    render :body => generate_qr_code("this is a test")                                                                 
  end    

そして、ビューで次のようにします。 <img src="controller_name/render_qr_code"> . ルートが必要など....