Rails Active Storage将微小的图像渲染为base64



我想拍摄一张已经上传的图像,并将其呈现为一个小的变体,然后将其输出为一个基本的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

最新更新