繁体   English   中英

Rails Active Storage 将小图像渲染为 base64

[英]Rails Active Storage render tiny image as base64

我想拍摄一个已经上传的图像并将图像渲染为一个小的变体,然后将其输出为 base 64 字符串。

我似乎无法获得转换后的图像,当我尝试这样做时,我一直在获得原始的未处理图像:

image.attachment.variant( resize_to_fill: [10, 10], convert: :png ).processed.blob.open do |tempfile|
  puts 'data:image/png;base64,' + Base64.strict_encode64(tempfile.read)
end

这是将数据作为完整图像返回,而不是 10x10 小方形图像。 似乎调用.blob返回原始图像而不是处理后的图像。

尝试这个:

  variation = ActiveStorage::Variation.new(resize_to_fit: [10, 10])

  image.open do |input|
    variation.transform(input, format: "png") do |output|
      puts 'data:image/png;base64,' + Base64.strict_encode64(output.read)
    end
  end

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM