从base 64内容确定图像类型

9
我在javascript中有不同类型的图像内容,格式为base64,例如: png文件:"iVBORw0KGgoAAAANSUhEUgAABQAAAAL4CAYAAAAkgloNAAAgA......."
jpeg文件:"/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDA......"
类似地,还可以有其他图像,如GIF、BMP等。
我需要一种方法来根据内容确定图像类型。我知道每种文件类型都有头文件,我可以参考它来确定图像内容类型。 示例参考:http://en.wikipedia.org/wiki/Portable_Network_Graphics#Technical_details
但是有没有人知道一种更聪明的库或其他技术可以解决这个问题?如果需要,我可以使用任何HTML5特性。
主要目的是在屏幕上呈现图像。为此,我使用dataURI模式,我有图像内容,只需要将正确的值放入url的"data:image/png"部分即可。

2
像一个 Base64 解码器 http://ostermiller.org/calc/encode.html 和一个从二进制数据中获取类型的工具 http://www.htmlgoodies.com/html5/tutorials/determine-an-images-type-using-the-javascript-filereader.html#fbid=qYZntLVXSZU? - Jamie Treworgy
2
现代浏览器可以自动识别图像类型,不依赖文件扩展名或MIME类型。尝试将data:image/png添加到jpeg或将data:image/gif添加到png中,它仍然可以正常渲染。至于检查文件头部的文件类型,这是在MIME类型或文件名不可用的情况下(有时即使可用也是如此)进行操作的任何文件的接受方式,完全没有问题。 - Dagg Nabbit
刚刚测试了FF、IE和Chrome,使用data:image/png格式测试了三种类型的图像文件——jpg、gif和bmp;并且它们在mime type="image/png"的情况下都能正常渲染,使用了所有这些浏览器的最新版本。 - sbr
1个回答

2

有很多基于javascript的base64解码器(相关问题),只需解码前4或5个字母,就可以得到文件类型。


为什么这不是一个注释? - Toby Caulk

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