noobie在这里希望你们不要介意!我试图查询我的user / id / pictures.json,但它返回的是属性cus我做了一个通用的format.json {render:json => @ photo.to_json()}。我的问题是如何创建和封装图像中的实际数据,以便我的客户可以将数据转换为图像?除了图像路径之外我还需要创建什么(属性明智)(比如你只有无用的属性,例如:height content_type,description,thumbnail file_name)?
这是我到目前为止在我的index.json.erb中尝试的内容
}
<% @photos.each do |photo|%>
data: <%= StringIO.new(Base64.encode64(photo.public_filename(:large))) %>
<%end%>
}
我要回来了
{
data: #<StringIO:0x1058a6cd0>
}
这不是我正在寻找的IMGdata 寻找
答案 0 :(得分:9)
看看Data-URIs。 它们基本上是格式化为URI的Base64编码实体(文档)
[{ "name":"red dot", "data": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg=="}, ...]
<强> [UPDATE] 强>
您需要读取文件并将其编码为Base64(您还需要在rails 2.3.x中删除新行)
data = ActiveSupport::Base64.encode64(File.read("/images/image1.png")).gsub("\n", '')
uri = "data:image/png;base64,#{data}"
答案 1 :(得分:1)
我认为您使用的是Ruby on Rails,不是吗?
然后下载图像需要一些步骤(例如png):
创建mime类型
转到config/initializers/mime_types.rb
并在结尾插入Mime::Type.register "image/png", :png
。
创建图片
例如,您可以使用gem Chunky_PNG创建图片,请参阅http://rubygems.org/gems/chunky_png和https://github.com/wvanbergen/chunky_png/wiki
准备控制器
你必须告诉你的控制器,它可以接受png。按以下方式修改控制器
class UsersController < ApplicationController
respond_to :json, :png
def show
# your own stuff
# ...
respond_with(response) do |format|
format.json
format.png do
send_data ChunkyPNG::Image.new(width, height, ChunkyPNG::Color::TRANSPARENT), :type =>"image/png", :disposition => 'inline'
end
end
end
end
这将创建一个完全透明的图像。如果你想在此绘制一些内容,请查看Chunky PNG文档。