Как объединить 2 изображения в Google App Engine на Java - PullRequest
5 голосов
/ 26 сентября 2011

Я видел python-коды для объединения двух изображений в google app engine с «составным». Но мне нужны java-коды, чтобы использовать «составной» для объединения двух изображений. Показ реального кода был бы очень полезен.

1 Ответ

9 голосов
/ 26 июня 2012

Это мой первый ответ, так что, надеюсь, я не буду слишком сильно биться.Поскольку никто больше не ответил на это, и я потратил немного времени на это сегодня, я подумал, что предоставлю некоторый код.

Основная причина, по которой это заняло у меня слишком много времени, заключается в том, что по какой-то причине,моделирование devserver API изображений работает неправильно, а составные изображения некорректны при использовании devserver.Я тратил целую вечность, манипулируя значениями в devserver, пока просто не загрузил тестовый код в AppEngine, и он заработал, как и ожидалось.Argg!

В любом случае, приведенный ниже код предполагает, что у вас есть два изображения размером 300x300, одно в aImage, а другое в bImage, которые вы хотите вставить бок о бок в новый холст 600x300, который создается в результате.Image newImage:

List<Composite> listComposites=new ArrayList<Composite>();

Composite aPaste = ImagesServiceFactory.makeComposite(aImage, 0, 0, 1f, Composite.Anchor.TOP_LEFT);
listComposites.add( aPaste );

Composite bPaste = ImagesServiceFactory.makeComposite(bImage, 300, 0, 1f, Composite.Anchor.TOP_LEFT);
listComposites.add( bPaste );

Image newImage = imagesService.composite(listComposites, 600, 300, 0xff333333L, ImagesService.OutputEncoding.JPEG);

Первый makeComposite помещает первое изображение в позицию 0,0 относительно TOP_LEFT.Второй makeComposite помещает второе изображение на 300,0.Оба наклеены с непрозрачностью 1,0.Надеюсь это поможет.Этот код сохраняет результат в формате JPEG.И, опять же, для меня это НЕ РАБОТАЕТ в devserver, но работает, как и ожидалось, на реальной платформе App Engine.

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