Warning: session_start(): open(/var/lib/php/sessions/sess_191gl0fucm9uo9pmto86pv5v6l, O_RDWR) failed: No space left on device (28) in /var/www/tb-usercake/models/config.php on line 51
Warning: session_start(): Failed to read session data: files (path: /var/lib/php/sessions) in /var/www/tb-usercake/models/config.php on line 51
// same brightness level count for each channel for now
sclass PosterizeBufferedImageToHi15 {
BufferedImage img;
Hi15Image result;
IPosterizer posterizer;
CachedPosterizer cachedPosterizer;
*(int brightnessLevels, BufferedImage *img) {
if (brightnessLevels >= 256 || img == null)
posterizer = new DummyPosterizer;
posterizer = SinglePixelPosterizer(brightnessLevels);
}
*(IPosterizer *posterizer, BufferedImage *img) {}
run {
if (img == null) ret;
if (posterizer cast DummyPosterizer)
ret with result = img;
GrabbableIntPixels gp = grabbableIntPixels_fastOrSlow(img);
int w = img.getWidth(), h = img.getHeight(), n = w*h;
int[] pixels = gp.data;
short[] pixels2 = new[n];
cachePosterizer();
var cachedPosterizer = this.cachedPosterizer;
int iOut = 0, iIn = gp.offset;
for y to h: {
for x to w: {
int rgb = pixels[iIn+x];
pixels2[iOut++] = rgbToHi15(
cachedPosterizer.get(rgbRed(rgb)),
cachedPosterizer.get(rgbGreen(rgb)),
cachedPosterizer.get(rgbBlue(rgb)));
}
iIn += gp.scanlineStride;
}
result = bufferedImageWithoutAlpha(w, h, pixels2);
}
public BufferedImage pixelPreservingSrcImage() { ret img; }
BufferedImage get() { if (result == null) run(); ret result; }
private void cachePosterizer {
if (cachedPosterizer == null)
cachedPosterizer = main cachePosterizer(posterizer);
}
}