2014-03-28 22 views
1

说实话,我真的不知道很多关于图像格式,或者是什么的base64实际上是,但是我们要说我转换为.jpg为Base64这样的:Base64是广泛使用的格式之间的通用格式?

my_base_64 = Base64.strict_encode64('kittens.jpg') 

然后我就可以显示该字符串的base64作为这样的巴纽:

<img src="data:image/png;base64,<%= my_base_64 %>" /> 

我可以右击并保存图像时,.JPG确实出现了一个完全成熟的巴纽,虽然没有透明度。

这是base64的点吗?一种通用的格式,使任何图像成为任何其他图像?

如果你看看我是如何做到这一点,这将适用于所有图像类型?不仅是一个.jpg,但.tiff jpeg2000等...我可以列出哪些格式不起作用?例如,.psd可能根本不起作用。

回答

0

BASE64只使用字符A-Z A-Z 0-9 +/

使用的base64,可以只使用上述的可打印字符编码任何二进制文件。这允许您在通常不接受二进制数据的上下文中包含二进制内容。例如,一封电子邮件可能包含一个图像为base64,因此您不必通过网络请求加载图像(img src = url)。许多电子邮件客户端不会加载图像,因为这样做可能会向垃圾邮件发送者指出电子邮件收件人是通过图像URL中的某个跟踪标记存在的。因此,通过将图像包含在base64中,它将随电子邮件一起提供。

base64的另一个例子是get-pip.py,它是一个python脚本,它内部包含ZIP压缩文件的完整副本作为base64字符串。这允许它解决需要自己安装自身的依赖关系:它只是使用该归档文件导入pip代码,以便它可以在本地系统上安装pip。

base64不是一个神奇的图像代码转换器。可能,浏览器正在读取base64字符串,将其转换为二进制格式,并确定它是来自生成图像中某些魔法字节码的JPG。当您需要以文本形式发送二进制数据时,请使用base64。