如何在Java中的谷歌应用引擎中加入2个图像

nan*_*eck 5 java google-app-engine image

我看到python代码在google app引擎中用'composite'连接两个图像.但我需要java代码使用'composite'来合并两个图像.显示实际代码将非常有帮助.

mrb*_*log 9

这是我的第一个回复,所以希望我不会受到太严厉的打击.由于没有其他人回答这个问题,今天我花了一些时间在这上面,我想我会提供一些代码.

这对我来说花费太多时间的主要原因是,无论出于何种原因,使用devserver时,Images 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);
Run Code Online (Sandbox Code Playgroud)

第一个makeComposite将第一个图像放在相对于TOP_LEFT的位置0,0.第二个makeComposite将第二个图像放在300,0.两者都贴有不透明度1.0.希望这可以帮助.此代码将结果保存为JPEG格式.而且,对我来说,这并不是在devserver中工作,而是在真正的App Engine平台上按预期工作.