Processing 3 作为图像处理的库

Processing 3 as a library for image processing

我目前正在 java 中处理图像动态叠加。我的服务器将根据 运行 时间参数渲染图像,因此我需要一个库来以简单的方式处理图像。

我听说过 Processing,很好奇如何将它与我的 Spring 启动服务器一起使用。我可以在没有 setup() draw() 函数的情况下只使用 Processing as a Library 吗?只需 运行 处理加载图像、对其进行操作并将结果上传到 AWS S3 以便最终客户端可以访问它?

我试过只使用

import processing.core.PApplet;
import processing.core.PImage;

public class Application {
    public static void main(String[] args) {
        PApplet pApplet = new PApplet();
        PImage pImage = pApplet.loadImage("/home/vadim/Pictures/lena.png");
        PImage pImage2 = pApplet.loadImage("/home/vadim/Pictures/lena.png");

        pImage.blend(pImage2, 0, 0, 50, 50, 0, 0, pImage2.width, pImage2.height, PImage.OVERLAY);
        pImage.save("/home/vadim/Pictures/result.png");
    }
}

有可能吗?或者我可能需要为它考虑一些其他库?

据我所知,如果没有至少一个 setup() 函数,您不能将 Processing 的函数用作独立函数。这是因为 Processing 需要在其大部分功能工作之前进行自己的初始化。

但请注意,您不需要包含 draw() 函数。您可以从 setup() 开始执行所有操作,例如:

public class TestSketch extends PApplet {
  public void setup() {
    background(32);
    ellipse(50, 50, 25, 25);
    noLoop();
  }

  static public void main(String[] passedArgs) {
    String[] appletArgs = new String[] { "TestSketch" };
    PApplet.main(appletArgs);
  }
}

话虽如此,您或许可以破解 Processing 的 source 以隔离您想要的功能。这可能比它值得做的更多。

无耻的自我推销:here is a guide on using Processing as a Java library. Here 是 运行 无显示处理的指南。