如何在Google应用引擎中使用Java合并两张图片

5

我看到了在Google App Engine中使用'composite'合并两个图像的Python代码。但是我需要Java代码来使用'composite'合并两个图像。提供实际的代码将非常有帮助。

1个回答

9
这是我的第一个回复,希望我不会被严厉地批评。由于没有其他人回答这个问题,而我今天花了一些时间在这上面,所以我想提供一些代码。
这个问题让我花费了太多的时间,主要原因是 Images API 的 devserver 模拟无法正常工作,当使用 devserver 时,组合图像不正确。我一直在调整 devserver 中的值,直到我将测试代码上传到 AppEngine,它才按预期工作。真是太困难了!
无论如何,下面的代码假设您有两个 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将第一张图片相对于TOP_LEFT放置在0,0位置。第二个makeComposite将第二张图片放置在300,0位置。两者的粘贴不透明度为1.0。希望这可以帮到你。此代码以JPEG格式保存结果。再次声明,对于我来说,在devserver中此代码无法正常工作,但在真实的App Engine平台上可以正常工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接