Как преобразовать JPEG в «сырые данные пикселей изображения в градациях серого 8bpp» - PullRequest
0 голосов
/ 01 апреля 2019

Я хотел бы запустить изображение на моем Android-устройстве через SwiftDecoder от Honeywell. Для Honeywell SDK требуется «необработанные данные о пикселях изображения в градациях серого 8bpp» как byteArray. Я перепробовал все возможное. Однако всегда возвращайте пустой список результатов, и в консоли отладки выдается следующее сообщение об ошибке:

"E / HSMLog: поймано исключение в классе: com.honeywell.barcode.DecodeManager Метод: DecodeImage () Сообщение: byte [] смещение = 0 длина = 9000000 src.length = 6420735 "

Я преобразовал jpeg в растровое изображение с форматом растрового изображения ARGB_8888, а затем перенес его в изображение в оттенках серого и преобразовал в bitArray.

    ```BitmapFactory.Options op = new BitmapFactory.Options();
    op.inPreferredConfig = Bitmap.Config.ARGB_8888;
    picBitmap = (Bitmap) BitmapFactory.decodeFile(Environment.getExternalStorageDirectory().getPath() + "/path/test.jpeg", op);
    greyscaleBitmap = toGrayscale(picBitmap);

    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    picBitmap.compress(Bitmap.CompressFormat.PNG, 100, baos);
    byte[] byteArray = baos.toByteArray();

    HSMDecodeResult[] barcodeData = hsmDecoder.decodeImage(byteArray, picBitmap.getWidth(), picBitmap.getHeight());```

Я получаю пустой результат и следующее сообщение об ошибке: «E / HSMLog: Caught Exception in Class: com.honeywell.barcode.DecodeManager Метод: DecodeImage () Сообщение: byte [] смещение = 0 длина = 9000000 src.length = 6420735 "

...