Java AWS Lambda - Jmagick

时间:2017-07-11 14:39:00

标签: java lambda imagemagick jmagick

我正在尝试在我的AWS Lamda Java代码中使用Jmagick。到目前为止,我已经做了以下事情:

  1. 在Amazon Linux EC2上编译了ImageMagick和Jmagick源代码并生成了.so库。
  2. 在我的Windows PC上为我的Java Lambda编写了以下代码(使用ImageMagick和Jmagick for Windows)。

    public String handleRequest(Object input, Context context) 
    {
    System.setProperty("jmagick.systemclassloader","false");
    try {
      ImageInfo newImageiInfo=new ImageInfo();
      newImageiInfo.setFileName("/tmp/oldImage.jpg");
      newImageiInfo.setSize("512x512");
      newImageiInfo.setUnits(ResolutionType.PixelsPerInchResolution);
      newImageiInfo.setColorspace(ColorspaceType.RGBColorspace);
      newImageiInfo.setBorderColor(PixelPacket.queryColorDatabase("red"));
      newImageiInfo.setDepth(8);
    
      MagickImage addTextImage = new MagickImage();
      addTextImage.allocateImage(newImageiInfo);
      addTextImage.setYResolution(480);
      addTextImage.setXResolution(640);
      addTextImage.writeImage(newImageiInfo);
      DrawInfo aInfo = new DrawInfo(newImageiInfo);
      aInfo.setFont("Arial");
      aInfo.setTextAntialias(true);
      aInfo.setText("JMagick Tutorial");
      addTextImage.annotateImage(aInfo);
      addTextImage.setFileName("/tmp/newImage.jpg");
      addTextImage.writeImage(newImageiInfo);
     }catch (MagickException e) {
      e.printStackTrace();
     }
     UploadtoS3("/tmp/newImage.jpg"); // a simple method for Uploading
     return "Hello from Lambda!";
     }
    
  3. 将.so库打包到Lambda部署包中(我使用jar作为部署包)。
  4. 代码在我的电脑上工作正常,但在Lambda上它没有生成任何图像文件。逻辑上应该在/tmp/newImage.jpg生成一个。此外,我在Lambda日志中看不到任何异常/错误。
  5. 我做错了什么吗?我还能做些什么?如果有特别有ImagaMagick和Lamda经验的人可以帮忙,我会很感激。

0 个答案:

没有答案