Копия байтового массива в Jsp - PullRequest
0 голосов
/ 14 февраля 2010

Я пытаюсь добавить 2 изображения (как байт []) в GoogleAppEngine Java, а затем попросить HttpResponseServlet отобразить его. Однако, похоже, что второе изображение не добавляется.

Что-то не так с приведенным ниже фрагментом?

...

resp.setContentType("image/jpeg");
byte[] allimages = new byte[1000000]; //1000kB in size
int destPos = 0;
for(Blob savedChart : savedCharts) {
  byte[] imageData = savedChart.getBytes(); //imageData is 150k in size
  System.arraycopy(imageData, 0, allimages, destPos, imageData.length);
  destPos += imageData.length;
}

resp.getOutputStream().write(allimages);
return;

Привет

Ответы [ 2 ]

1 голос
/ 14 февраля 2010

Я ожидаю, что браузер / клиент выдаст 2 отдельных запроса для этих изображений, и сервлет будет отправлять каждое по очереди.

Вы не можете просто объединять изображения вместе (как и большинство других структур данных). А как насчет заголовков и т. Д.? В настоящий момент вы предоставляете 2 jpeg-файла друг другу, и браузер не справится с этим вообще.

Если вам действительно нужны 2 изображения вместе, вам понадобится некоторая библиотека обработки изображений, чтобы сделать это для вас (или, как уже отмечалось, AWT). Проверьте библиотеку ImageIO .

1 голос
/ 14 февраля 2010

Похоже, у вас совершенно неверное представление о формате файлов изображений и о том, как они работают в HTML.

Короче говоря, массивы копируются очень хорошо без проблем. Но это не так, как работает изображение.

Вам нужно будет сделать AWT для объединения изображений в Java

...