How do I use a method in other Processing projects?

I created a function that takes an image and returns a similar version of the image but with Gameboy graphics. Is there a way I can sort of save the function so I can use it in other projects similar to the way we use functions like circle(x, y, d)?
Here’s the function in case you need it:

PImage gameboyRenderer(PImage real){
  PImage image = createImage(real.width, real.height, RGB);
  image.copy(real, 0, 0, real.width, real.height, 0, 0, real.width, real.height);
  for(int y = 0; y < image.height - 1; y++){
    for(int x = 1; x < image.width - 1; x++){
      color pix = image.pixels[index(x, y)];
      float scale = 3;
      
      float oldR = red(pix);
      float oldG = green(pix);
      float oldB = blue(pix);
      
      float newR = (255 / scale) * round(scale * oldR / 255.0);
      float newG = (255 / scale) * round(scale * oldG / 255.0);
      float newB = (255 / scale) * round(scale * oldB / 255.0);
      image.pixels[index(x, y)] = color(newR, newG, newB);
      
      float errR = oldR - newR;
      float errG = oldG - newG;
      float errB = oldB - newB;
      
      int index = index(x + 1, y    );
      color c = image.pixels[index];
      float r = red(c);
      float g = green(c);
      float b = blue(c);
      r = r + errR * 7 / 16.0;
      g = g + errG * 7 / 16.0;
      b = b + errB * 7 / 16.0;
      image.pixels[index] = color(r, g, b);
      
      index = index(x - 1, y + 1);
      c = image.pixels[index];
      r = red(c);
      g = green(c);
      b = blue(c);
      r = r + errR * 3 / 16.0;
      g = g + errG * 3 / 16.0;
      b = b + errB * 3 / 16.0;
      image.pixels[index] = color(r, g, b);
      
      index = index(x    , y + 1);
      c = image.pixels[index];
      r = red(c);
      g = green(c);
      b = blue(c);
      r = r + errR * 5 / 16.0;
      g = g + errG * 5 / 16.0;
      b = b + errB * 5 / 16.0;
      image.pixels[index] = color(r, g, b);
      
      index = index(x + 1, y + 1);
      c = image.pixels[index];
      r = red(c);
      g = green(c);
      b = blue(c);
      r = r + errR * 1 / 16.0;
      g = g + errG * 1 / 16.0;
      b = b + errB * 1 / 16.0;
      image.pixels[index] = color(r, g, b);
    }
  }

Just copy the function to your new sketch

Other way is to make a library that you can use from different sketches

1 Like