2015-05-22 34 views
1

我將JSON字符串傳遞給包含{「imagePath」:「a.svg」}的JavaScript代碼現在,我不想傳遞圖像傳遞路徑作爲字符串(有些字節代碼也許)。我將在JavaScript中解析這個字符串,並將其作爲圖像寫入文檔。如何將字符串格式的圖像傳遞給JavaScript並將其寫入文檔

+0

發送它作爲base64編碼,所以你可以把它放在'src'屬性中,參見http://stackoverflow.com/questions/1207190/embedding-base64-images – Barmar

回答

2

將svg字符串轉換爲base64並將base64字符串添加到json屬性。 看看例子:https://jsfiddle.net/wLftvees/1/ enter image description here

var decodedJson = { 
    img: 
"PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBB"+ 
"ZG9iZSBJbGx1c3RyYXRvciAxNS4xLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9u"+ 
... 
"NSw4LjU5NS0wLjA5NSwxMC42ODIsMS45MDMiLz4NCjwvc3ZnPg0K" 
}; 

document.getElementById('image').src = 'data:image/svg+xml;base64,' + decodedJson.img; 
0

首先:將您的圖像串

public static String encodeToString(BufferedImage image, String type) { 
    String imageString = null; 
    ByteArrayOutputStream bos = new ByteArrayOutputStream(); 

    try { 
     ImageIO.write(image, type, bos); 
     byte[] imageBytes = bos.toByteArray(); 

     BASE64Encoder encoder = new BASE64Encoder(); 
     imageString = encoder.encode(imageBytes); 

     bos.close(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
    return imageString; 
} 

二:字符串轉換爲圖像

public static BufferedImage decodeToImage(String imageString) { 

    BufferedImage image = null; 
    byte[] imageByte; 
    try { 
     BASE64Decoder decoder = new BASE64Decoder(); 
     imageByte = decoder.decodeBuffer(imageString); 
     ByteArrayInputStream bis = new ByteArrayInputStream(imageByte); 
     image = ImageIO.read(bis); 
     bis.close(); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
    return image; 
} 

現在你可以使用2功能和開關以Javascript來獲取圖像。 ^^

相關問題