Создание и обслуживание изображения с помощью AppEngine - PullRequest
1 голос
/ 31 января 2012

В Google AppEngine я хочу преобразовать логическое значение [] в изображение, а затем отправить изображение.Я хочу, чтобы логическое [] было преобразовано в черно-белые пиксели.Я вижу, что AppEngine предоставляет

import com.google.appengine.api.images.Image;
import com.google.appengine.api.images.ImagesService;
import com.google.appengine.api.images.ImagesServiceFactory;

// ...
byte[] imageData;  // ...   
ImagesService imagesService = ImagesServiceFactory.getImagesService();    
Image image = ImagesServiceFactory.makeImage(imageData);

, но я не знаю, каким должен быть формат byte[] imageData, т. Е. Как преобразовать boolean[] в byte[]

И когда у меня есть это изображение, как клиент может получить его?

1 Ответ

2 голосов
/ 02 февраля 2012

API сервиса изображений принимает данные в любом из поддерживаемых форматов файлов изображений. Согласно этой странице , эти форматы включают "JPEG, PNG, WEBP, GIF (включая анимированный GIF), BMP, TIFF и ICO". Сервис изображений не позволяет создавать новые данные изображений с нуля. Но вы можете использовать графическую библиотеку для создания изображения в одном из принятых форматов данных, а затем использовать сервис для преобразования его в другой формат или преобразования. Конечно, в зависимости от графической библиотеки вы можете получить окончательное изображение непосредственно из библиотеки и не использовать службу.

Чтобы отправить изображение, просто установите соответствующий заголовок Content-Type для формата данных, который вы используете, затем запишите байты данных изображения в выходной поток ответа:

// byte[] pngData = ...
resp.addHeader("Content-Type", "image/png");
resp.getOutputStream().write(pngData);

Если вы хотите попробовать создать данные изображения без библиотеки, формат BMP может быть самым простым. Вы можете использовать сервис изображений для преобразования этого в PNG.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...