Я делаю приложение для Android для распаковки, декодирования и отображения HDR-изображений.
Эти изображения HDR используют 2 байта на компонент (A, R, G, B), поэтому один пиксель представлен значением 8 байтов, которое может соответствовать только типу long.
Я использую растровое изображение Android для отображения изображения, поскольку у них есть конструктор, позволяющий делать HDR с помощью Bitmap.Config.RGBA_F16
:
int width = 1;
int height = 1;
Bitmap image = Bitmap.createBitmap(width, height, Bitmap.Config.RGBA_F16);
К сожалению, я не могу найти способ заполнить пиксель растрового изображения. Я использую рекомендованную формулу, но ее нельзя использовать в методе setPixel (x, y, color) растрового изображения, потому что цвет должен быть целым:
long color = (A & 0xffff) << 48 | (B & 0xffff) << 32 | (G & 0xffff) << 16 | (R & 0xffff);
image.setPixel(0,0,color); //Argument type error
.
Я также пробовал с Color (, который имеет HDR-совместимый метод ), Paint и Canvas, но ни один растровый метод не принимает их для установки только одного пикселя.
Спасибо за любую помощь!