Я хочу преобразовать 1-D байт-массив пикселей изображения в 1-D целочисленный массив. У меня есть следующий код, как показано ниже:Преобразование массива 1D байт в массив 1D Integer
Byte[] pixels = (Byte[]) img.getRaster().getDataElements(0, 0, width, height, null);
int[] array = new int[pixels.length];
for (int k = 0; k < pixels.length; k++);{
array[k] = pixels[k++];
}
Всякий раз, когда я компиляция этого кода, я получаю ниже исключение во время выполнения: Исключения в потоке «основной» java.lang.ClassCastException: [B не может быть брошен к [Ljava.lang.Byte;
Сторона примечания: в случае 'img.getRaster()' ваш собственный код --- не возвращайте массив байтов, а байт. Вы действительно хотите быть осторожным в том, что компилятор делает бокс/распаковку повсюду; так как такие вещи могут существенно повлиять на производительность на больших наборах данных. – GhostCat
Я пробовал, но опять получаю то же исключение: Исключение в потоке "main" java.lang.ClassCastException: [B нельзя отбрасывать на [Ljava.lang.Byte; –
@ Jägermeister 'img.getRaster()' не является настраиваемым кодом, но скорее всего 'BufferedImage # getRaster()'. – Thomas