2014-11-11 2 views
1

컨트롤러에 생성 된 이미지 (PNG)를 파일에 저장하고 싶습니다. 생성 된 이미지 데이터를보기 위해 전달할 수 있습니까? 나는 약간의 인터넷 검색을했지만이 아이디어에 대해서는 아무 것도 발견하지 못했습니다. 비슷한 해결책이 여기서 제공됩니다 : Invalid encoding with rqrcode, 임시 파일에 이미지를 저장하고 다시 할당하지만이 추가 단계를 피하려고합니다.컨트롤러에서 PNG 이미지를보기로 전달하는 방법은 무엇입니까?

나는 send_data disposition: 'inline'을 사용하려고했지만 내보기 코드에서이 개체를 사용하는 방법에 집착하고 있습니다.

답변

1

데이터 URI를 살펴보십시오. 그것은 당신이 찾고있는 것을 해결할 것입니다.

The wikipedia article에도 PNG에 대한 예가 있습니다.

1

Data URIs 및 자료 (64)를 사용하여 이미지의 데이터를 인라인으로로드 할 수의 인코딩 :

<img src="data:image/png;base64,/<%= @image_data_b64 %>" /> 

그런 다음 이미지 데이터를 인코딩하는 ActiveSupport::Base64.encode64를 사용할 수 있습니다

class ImageController < ApplicationController 
    def index 
    raw_data = # Code to get image data as string 
    @image_data_b64 = ActiveSupport::Base64.encode64(raw_data) 
    end 
end 
+0

좋은 팁을하지만, encode64 아니다 더 이상 Rails 4에 포함되었습니다. 나는 Ruby Std-Lib'Base64.encode64'를 사용했다. – adass

관련 문제