static L imagePixelsToRGBAWithSize_virtualIntList(BufferedImage etc img) { if (img == null) null; int w = img.getWidth(), h = img.getHeight(), n = w*h+2; ret new RandomAccessAbstractList() { public int size() { ret n; } public Int get(int i) { if (i == 0) ret w; if (i == 1) ret h; i -= 2; ret img.getRGB(i % w, i / w); } public Int set(int i, Int val) { if (i < 2) fail(); i -= 2; int old = img.getRGB(i % w, i / w); if (old != (int) val) img.setRGB(i % w, i / w, val); ret old; } }; }