将远程图像转换为字符串

时间:2011-04-24 12:56:46

标签: javascript

问题说明了一切:如何将远程托管的图像转换为字符串。我稍后会使用XMLHTTPPost上传内容。对于那些没有阅读标记行的人来说,这是javascript个问题。

@Madmartigan:脚本本身以相当奇怪的方式执行:用户使用javascript:从remove主机附加脚本。 (这样可以访问用户cookie会话,我们需要继续)这会生成表单,使用户能够设置一些文本。 (这很容易)当用户点击upload时,脚本必须获取托管在远程主机上的图像。我试图从远程主机获取图像作为字符串,然后使用类似下面的函数将其转换为二进制。那么,我该怎么做?

function toBin(str){
 var st,i,j,d;
 var arr = [];
 var len = str.length;
 for (i = 1; i<=len; i++){
                //reverse so its like a stack
  d = str.charCodeAt(len-i);
  for (j = 0; j < 8; j++) {
   st = d%2 == '0' ? "class='zero'" : "" 
   arr.push(d%2);
   d = Math.floor(d/2);
  }
 }
        //reverse all bits again.
 return arr.reverse().join("");
}

我应该提一下,我找到了类似的东西:

var reader = new FileReader();
reader.onload = function() {
  previewImage.src = reader.result;
}
reader.readAsDataURL(myFile);

但是,它们非常依赖浏览器,因此不太有用。

我正在尝试避免使用base64,因为大小会增加冗余。

1 个答案:

答案 0 :(得分:1)

编辑:看看这里。 Take应该帮助你:http://www.nihilogic.dk/labs/exif/或者在这里:http://jsfromhell.com/classes/binary-parser在javascript上下文中将二进制数据存储到字符串中的唯一方法是使用base64 / base128编码。但是我自己从未尝试过这样做以防止出现图像。有很多JavaScript基编码器/解码器。希望这会对你有所帮助。