Warning: session_start(): open(/var/lib/php/sessions/sess_3vp2pigfdel1e8dtb9qmker364, 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
static GrabbableRGBBytePixels grabbableRGBBytePixels(BufferedImage img) {
Raster raster = img.getRaster();
SampleModel _sampleModel = raster.getSampleModel();
if (!_sampleModel instanceof PixelInterleavedSampleModel) null;
PixelInterleavedSampleModel sampleModel = cast _sampleModel;
DataBufferByte dataBuffer = cast raster.getDataBuffer();
assertEquals(1, dataBuffer.getNumBanks());
assertEquals(DataBuffer.TYPE_BYTE, dataBuffer.getDataType());
// Let's at this point assume the raster data is what we
// think it is... (TODO: test on unusual platforms)
int w = img.getWidth(), h = img.getHeight();
int pixelStride = sampleModel.getPixelStride();
int scanlineStride = sampleModel.getScanlineStride();
byte[] pixels = dataBuffer.getData();
int offset = dataBuffer.getOffset();
int translateX = raster.getSampleModelTranslateX();
int translateY = raster.getSampleModelTranslateY();
offset += -translateX-translateY*scanlineStride;
var imageModel = img.getColorModel();
if (imageModel != ColorModel.getRGBdefault()) {
assertEquals(w*3, scanlineStride);
assertEquals(3, pixelStride);
int n = pixels.length;
byte[] newPixels = new[n];
for (int i = 0; i < n; i += 3) {
int rgb = imageModel.getRGB(
((pixels[i] & 0xFF) << 16)
| ((pixels[i+1] & 0xFF) << 8)
| (pixels[i+2] & 0xFF));
newPixels[i] = (byte) (rgb >> 16);
newPixels[i+1] = (byte) (rgb >> 8);
newPixels[i+2] = (byte) rgb;
}
pixels = newPixels;
}
ret GrabbableRGBBytePixels(pixels, w, h, offset, scanlineStride, pixelStride);
}