Я пытаюсь преобразовать Буферизированное изображение в ByteBuffer, но я получаю это исключениеПреобразования BufferedImage в ByteBuffer
java.awt.image.DataBufferInt cannot be cast to java.awt.image.DataBufferByte
может кто-то пожалуйста, помогите мне и предложить хороший метод преобразования.
Источник:
public static ByteBuffer convertImageData(BufferedImage bi)
{
byte[] pixelData = ((DataBufferByte) bi.getRaster().getDataBuffer()).getData();
// return ByteBuffer.wrap(pixelData);
ByteBuffer buf = ByteBuffer.allocateDirect(pixelData.length);
buf.order(ByteOrder.nativeOrder());
buf.put(pixelData);
buf.flip();
return buf;
}
это мой объект
ByteBuffer buf = convertImageData(image);
Когда вы создаете буферное изображение, вы можете указать ему константу, которая определяет цветовое пространство изображения. Похоже, вы смешиваете изображения типа int и byte. Например, http://docs.oracle.com/javase/7/docs/api/java/awt/image/BufferedImage.html#TYPE_BYTE_INDEXED. Вы также можете использовать http://docs.oracle.com/javase/7/docs/api/java/awt/image/BufferedImage.html#getType%28%29, чтобы узнать тип существующего изображения. – BretC