如何在凤凰城渲染透明的gif像素?

时间:2015-10-18 06:23:36

标签: elixir phoenix-framework

来自Rails背景我希望我能渲染一个透明的像素gif。要在Rails上执行此操作,我只需

gif_data = "GIF89a\x01\x00\x01\x00\x80\xFF\x00\xC0\xC0\xC0\x00\x00\x00!\xF9\x04\x01\x00\x00\x00\x00,\x00\x00\x00\x00\x01\x00\x01\x00\x00\x01\x012\x00;"
respond_to do |format|
  format.gif { render text: gif_data, content_type: "image/gif" }
end

希望能有一些比我自己更清洁的方式。

1 个答案:

答案 0 :(得分:6)

经过一些谷歌搜索和学习字符串编码。我转换了实际透明gif的十六进制代码

47 49 46 38 39 61 01 00 01 00 80 00 00 00 00 00 FF FF FF 21 F9 04 01 00 00 00 00 2C 00 00 00 00 01 00 01 00 00 02 01 44 00 3B

使用Hexate包进入此

<<71, 73, 70, 56, 57, 97, 1, 0, 1, 0, 128, 0, 0, 0, 0, 0, 255, 255, 255, 33, 249, 4, 1, 0, 0, 0, 0, 44, 0, 0, 0, 0, 1, 0, 1, 0, 0, 2, 1, 68, 0, 59>>

所以要在凤凰控制器中使用它,我可以

gif_data = <<71, 73, 70, 56, 57, 97, 1, 0, 1, 0, 128, 0, 0, 0, 0, 0, 255, 255, 255, 33, 249, 4, 1, 0, 0, 0, 0, 44, 0, 0, 0, 0, 1, 0, 1, 0, 0, 2, 1, 68, 0, 59>>
conn = put_resp_content_type(conn, "image/gif")
text conn, gif_data