说实话,我并不是很了解图像格式,或者实际上是什么base64,但是我要说我将.jpg转换为base64,如下所示:
my_base_64 = Base64.strict_encode64('kittens.jpg')
然后我可以将这个base64字符串显示为.png,如下所示:
<img src="data:image/png;base64,<%= my_base_64 %>" />
我可以右键单击并保存图像,.jpg看起来确实是完全成熟的.png,但没有透明度。
这是base64的重点吗?一种通用格式,可以使任何图像成为任何其他图像?
如果你看看我是如何做到的,那么这适用于所有图像类型吗?不仅是.jpg,还有.tiff jpeg2000等...我可以列出哪些格式不起作用?例如,.psd可能根本不会工作。
答案 0 :(得分:0)
base64仅使用字符a-z A-Z 0-9 + /
使用base64,您可以仅使用上述可打印字符对任何二进制文件进行编码。这允许您在通常不接受二进制数据的上下文中包含二进制内容。例如,电子邮件可以将图像包含为base64,这样您就不必通过Web请求加载图像(img src = url)。许多电子邮件客户端不会加载图像,因为这样做可能会向垃圾邮件发送者表明电子邮件收件人通过图像URL中的某个跟踪标记存在。因此,通过将图像包含为base64,它随电子邮件本身一起提供。
base64的另一个例子是get-pip.py,它是一个python脚本,其中包含ZIP存档的完整副本作为base64字符串。这允许它解决需要自己安装自身的依赖性:它只使用该存档来导入pip代码,以便它可以在本地系统上安装pip。
base64不是一个神奇的图像转码器。可能,浏览器正在读取base64字符串,将其转换为二进制格式,并从结果图像中的某些神奇字节代码确定它是JPG。当您需要以类似文本的形式发送二进制数据时,请使用base64。