2016-07-26 5 views
0

Я пытаюсь преобразовать изображение base64 в файл, который можно увидеть в gmail/outlook. В настоящее время, когда я отправляю электронное письмо с изображением в существующую gmail, изображение исчезает, я вижу весь текст, кроме изображения. Но я могу просмотреть изображение в своей яблочной почте. Я провел некоторое исследование, он говорит, что gmail заблокировал образы base64. Таким образом, единственный способ сделать это - преобразовать изображения base64.Послать email image Bufferedimage/ImageIO

 <img alt=3D"" src=3D"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAANsA=AABpCAIAAAA848FpAAAF/0lEQVR4nO2c2ZXjOAxFnW5l4VCcWyeADGo+elqmiIXgI......=3D" /></div> 

Я изменил свои коды, используя буферизованное изображение/imageIO, но это не имеет значения, когда я отправляю электронное письмо. Что-то не так с этим? Или есть ли другие способы разрешить просмотр изображений base64?

Это мои коды для изображения.

String _message = _n.getRichcontent(); 
    String[] _s = _message.split(","); 
    String message = _s[1]; 
    System.out.println(_s[1]); 

    // create a buffered image 
    BufferedImage image = null; 
    byte[] imageByte; 
    BASE64Decoder decoder = new BASE64Decoder(); 
    try { 
     imageByte = decoder.decodeBuffer(message); 
     ByteArrayInputStream bis = new ByteArrayInputStream(imageByte); 

     image = ImageIO.read(bis); 
     System.out.println("Reading complete."); 

     bis.close(); 

     // write the image to a file 
     File outputfile = new File("image.png"); 

     ImageIO.write(image, "png", outputfile); 
     System.out.println("Writing complete." + outputfile); 


    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
     System.out.println("Error: "+e); 
    } 

Это код изображения, который будет размещен в моей электронной почте.

_msg = _msg + _message + "<BR><BR>"; 

Это должно отправить электронное письмо.

sendMail(_sender, _receipients, _subject, _msg); 

ответ

0

Нет, прямого метода нет. Но ...

Представьте себе HTML-таблицы, имеющие ширину изображения и высоту изображения и каждая клетка имеет другой цвет фона, как это:

<td style=background:#ddde22 /> 

Это составляет около 31 байт для каждой пиксели.

Если у вас 64x64-изображение, его 64 * 64 * 31 байта = 127kb в реальном цвете.

Вы живете с этим?

Если да, то this discussion may help.