【发布时间】:2012-05-05 08:55:22
【问题描述】:
我在 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”部分输入正确的值。
【问题讨论】:
-
就像一个 base 64 解码器 ostermiller.org/calc/encode.html 和一个从二进制数据中为您提供类型的工具 htmlgoodies.com/html5/tutorials/… ?
-
现代浏览器会自行判断图像的类型,它们不依赖文件扩展名或 mime 类型。尝试将
data:image/png添加到 jpeg 或将data:image/gif添加到 png,它应该仍然可以正常渲染。至于检查文件类型的标头,这是 any file 在 mime 类型或文件名不可用(有时即使它可用)的情况下接受的方式,这完全没有问题。 -
刚刚检查了 FF、IE、Chrome 和 data:image/png 的 3 种图像文件类型 - jpg、gif 和 bmp;他们使用 mime type="image/png" 渲染得很好,使用了所有这些浏览器的最新版本。
标签: javascript image html file-upload base64