In my previous comment I didn’t focus on the “same” part of your question, thinking that they were different images.
For a grid of the same image covering the whole screen a texture also works:
PImage img;
float columns = 64.0;
float rows = 64.0;
void setup() {
size(1000, 1000, P2D);
img = loadImage("berlin-1.jpg");
textureMode(NORMAL);
textureWrap(REPEAT);
noStroke();
}
void draw() {
beginShape();
texture(img);
vertex(0, 0, 0, 0);
vertex(width, 0, width/columns, 0);
vertex(width, height, width/columns, height/rows);
vertex(0, height, 0, height/rows);
endShape();
}
Modified version of Examples > Topics > Textures > TextureQuad
With this approach the performance is not affected by the number of columns or rows.