从Base64数据创建图像文件

5

我有一串base64编码的图像数据。我将粘贴前几个字符:

string='data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD     /2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopG   R8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgo......'

我正在使用Ruby对它进行以下操作。
decoded_string=Base64.decode64 string
output_file = Tempfile.new(['image','.jpeg'])
output_file.binmode
output_file.write image 

当我打开'image.jpeg'时,会出现错误。
Error interpreting JPEG image file (Not a JPEG file: starts with 0x75 0xab)

我也尝试过

File.open('a.jpeg', 'wb') do|f|
   f.write decoded_string
end 

在这种情况下,我也遇到了同样的错误。
我做错了什么?

1
“data:image/jpeg;base64,”在编码字符串开头引起了这个问题。我只需要将其删除,然后一切都正常工作了。 - Rndomcoder
在去掉'data:image/jpeg;base64,'部分后,你是使用了File.open还是output_file.write - Qasim
1个回答

3

如果你认为这个问题是一个重复的问题,你应该投票关闭它。 - Stefan
2
问题不是重复的。我已经在写文件时使用了二进制模式。我的问题是编码字符串的前23个字符,即“data:image/jpeg;base64,”所以我只需要将它们删除,然后解码即可。 - Rndomcoder

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接