2012-07-03 4 views
2

Я работаю над API контактов Google, и я получил все данные и отправил в качестве строки JSON (javascript), но когда я получаю изображение из контактов, я могу получить образ. Как я могу отправить его в JSON? Как отправить файл изображения в URL? (Могу ли я использовать указатель?)Как отправить изображение клиенту Javascript с помощью JSON с сервера Java

if (photoLink.getEtag() != null) { 
GDataRequest request = myService.createLinkQueryRequest(photoLink); 
request.execute();                      
// No Authentication header information 
InputStream stream = request.getResponseStream();  
Image image= ImageIO.read(stream); 
} 

ответ

1

Если вы пытаетесь отправить фактическое изображение, закодированное в виде данных с помощью JSON, вы можете просто отправить HTML img тег с атрибутом src, содержащего данные, закодированные изображений, например, так : Список поддерживаемых

<img src="data:image/png;base64,R0lGODlhEAAOALMAAOazToeHh0tLS/7LZv/0jvb29t/f3//Ub/ 
/ge8WSLf/rhf/3kdbW1mxsbP//mf///yH5BAAAAAAALAAAAAAQAA4AAARe8L1Ekyky67QZ1hLnjM5UUde0ECwLJoExKcpp 
V0aCcGCmTIHEIUEqjgaORCMxIC6e0CcguWw6aFjsVMkkIr7g77ZKPJjPZqIyd7sJAgVGoEGv2xsBxqNgYPj/gAwXEQA7"> 

Browser (Включает Браузер Android & IOS Safari:

http://en.wikipedia.org/wiki/Data_URI_scheme#Web_browser_support

+0

Спасибо Alex.Do мне нужно закодировать изображение на Base64? –

+0

Я считаю, что это лучший вариант. Вот еще информация: http://jimbojw.com/wiki/index.php?title=Data_URIs_and_Inline_Images. Base-64 обеспечивает более постоянную передачу по сетям. Если вы используете сжатие JPEG, изображения будут очень маленькими, и для этого вы должны использовать тип изображения «image/jpg» вместо «image/png» выше. –

0

Вы должны просто использовать сервлет для отправки изображений и просто отправить некоторую переменную url в JSON. (Как ?pic_id=034enifuwbf0329.

Вы могли использовать встроенное изображение, но что бы с треском провалились на некоторых версиях IE, в то время как другое решение браузера агностиком.

+0

Он будет отправлен в браузер для мобильных устройств. –

+0

, тогда полоса пропускания имеет первостепенное значение. кодирование встроенного изображения ужасно неэффективно, с точки зрения компактной передачи данных. Stick с решением # 1, иметь выделенный сервлет для обслуживания изображений. –

 Смежные вопросы

  • Нет связанных вопросов^_^