У меня есть вопрос о Rasters в BufferedImage. У меня есть байтовый массив данных изображения, и я хочу установить данные байта в качестве новых данных изображения. Я уже видел путь способ сделать это, на фото ниже:Установить растровые данные с байт-массивом
BufferedImage bImageFromConvert = new BufferedImage(dimWidth, dimHeight, BufferedImage.TYPE_BYTE_GRAY);
byte[] bufferHolder = ((DataBufferByte) bImageFromConvert.getRaster().getDataBuffer()).getData();
System.arraycopy(imageInByte, 0, bufferHolder, 0, bufferHolder.length);//imageInByte is my byte array
ImageIO.write(bImageFromConvert, "bmp", new File(
directory + fileName + "_Compressed.bmp"));
Однако при записи данных в формате BMP, конечный результат не то, что ожидалось. Я несколько дней стучал головой по этому проекту, и я хочу посмотреть, могу ли я поместить байтовые данные прямо в Растр, чтобы понять, не изменилось ли это. Прошу прощения, если этот вопрос немного запутан, мой мозг немного обжарен с часов кодирования. Пожалуйста, дайте мне знать, если я могу сделать это более ясным.
Спасибо!
EDIT: Вывод изображения clilck
EDIT2: Примечание стороны, кто-нибудь знает, почему байты, кажется, повторяет, как, что в выходном изображении? Код, который разделяет верхние и нижние разряды, похоже, не дублирует ничего.
Каковы результаты, которые вы получаете, это не то, что вы ожидали? – CraigR8806
Вы пытаетесь применить массив байтов 'imageInByte' к' bImageFromConvert'? – CraigR8806
@ CraigR8806 Я пишу уложенные изображения байтовых данных на изображение, и предполагаемый результат состоит в том, чтобы верхние байты отображались в верхней части изображения как действительно «яркое» мини-изображение, а нижние байты внизу как темный мини-образ. Прямо сейчас это похоже на то, что изображения с высоким байтом и низким байтом повторяются дважды. Мне интересно, если это из-за нескольких цветных каналов? Но я был уверен, что TYPE_BYTE_GRAY дал мне неподписанное 8-битное изображение в оттенках серого. Я очень смущен, почему это повторяется. Я приложу свой вывод изображения, чтобы вы могли видеть, что я имею в виду. – Sarah