Учитывая ширину, высоту, глубину и байтовый массив изображения, мне нужно создать объект SWT Image.В настоящее время у меня нет проблем с предоставлением данных для 8-битных изображений.
int imageWidth;
int imageHeight;
int depth;
byte[] imageBytes;
//calculate the values
imageData = new ImageData( imageWidth, imageHeight, depth, new PaletteData(255,255,255), 1, imageBytes);
new Image( display, imageData );
У меня проблема в том, что для 16-битных изображений цвет немного искажен.Какими должны быть черные пиксели на самом деле серыми.
Для 32-битных изображений отображаются только несколько черных пикселей, а остальное изображение - белое.
Есть идеи?
Спасибо.
Редактировать: Массив imageBytes считывается из проприетарного графического файла, для которого мне не удалось получить спецификацию (и поэтому я не совсем уверен в формате).
Я смог добиться прогресса на 32-битном изображении.Похоже, что 32-битное изображение было в одном из форматов RGBAX.Я преобразовал его в 24-битное изображение, и теперь оно имеет ту же проблему, что и 16-битное изображение (то, что серое должно быть черным).
Размер массива imageBytes (ширина * высота * (глубина / 8)) где глубина в битах.
Я попытался изменить порядок байтов каждого пикселя, однако это не решило проблему.В областях, которые должны быть сплошным черным, это может быть либо черный, смесь белого и черного, либо все белое.