2011-04-24 14 views
2

這個問題說明了一切:如何將遠程託管的圖像轉換爲字符串。我稍後將使用XMLHTTPPost來上傳內容。這是javascript的問題,對於那些不讀標籤的人來說。將遠程圖像轉換爲字符串

@Madmartigan:腳本本身以相當奇怪的方式執行:用戶使用javascript:來追加刪除主機中的腳本。 (這可以訪問用戶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,因爲多餘的大小增加。

+2

「將遠程圖像轉換爲字符串」對我來說並不是全部。我只能猜測你想要做什麼,更多的信息==更多的幫助。 – 2011-04-24 12:58:50

回答

1

編輯:看看這裏。採取應該幫助你:http://www.nihilogic.dk/labs/exif/或者在這裏:http://jsfromhell.com/classes/binary-parser在JavaScript上下文中將二進制數據存儲到字符串的唯一方法是使用base64/base128編碼。但是,我從來沒有嘗試過自己去做這件事情,以防圖像。有很多JavaScript基本編碼器/解碼器。希望這可以幫助你。

+0

查看我給Madmartigan的解釋。 – Gajus 2011-04-24 13:09:46

+0

好的。編輯出來了 – sra 2011-04-24 13:40:59