【发布时间】:2014-11-14 16:32:41
【问题描述】:
我正在尝试为 JavaScript 和 Ruby 中的图像文件生成相同的 base64 数据。不幸的是,两者都输出了两个非常不同的值。
在 Ruby 中我这样做:
Base64.encode64(File.binread('test.png'));
然后在 JavaScript 中:
var image = new Image();
image.src = 'http://localhost:8000/test.png';
$(image).load(function() {
var canvas, context, base64ImageData;
canvas = document.createElement('canvas');
context = canvas.getContext('2d');
canvas.width = this.width;
canvas.height = this.height;
context.drawImage(this, 0, 0);
imageData = canvas.toDataURL('image/png').replace(/data:image\/[a-z]+;base64,/, '');
console.log(imageData);
});
知道为什么这些输出不同吗?
【问题讨论】:
-
查看时图像看起来一样吗?
-
是的,如果我在 Ruby 中解码 base64 并将原始数据保存到 PNG 文件中,它看起来是一样的。
标签: javascript image canvas md5