Я работаю в Android Studio. Я пытаюсь выяснить некоторый код, который я получил из учебника. Следующий метод является частью действия камеры. Когда камера направлена на объект, этот метод сработает, и я думаю, что изображение на экране камеры передается методу в виде байтового массива (называемого байтами). Этот байтовый массив имеет длину 460800.
Я пытаюсь повторить метод, описанный ниже, и другие, которые следуют, используя растровое изображение stati c, загруженное в представление изображения (код ниже), а не предварительный просмотр, полученный с камеры. Мой вопрос состоит в том, как мне получить мое растровое изображение (из вида изображения), чтобы оно выглядело как байтовый массив, переданный этому методу (с числом байтов 460800 в длину). Другими словами, я пытаюсь, чтобы мое растровое изображение было похоже на изображение, которое сделала бы камера?
/** Callback for android.hardware.Camera API */
@Override
public void onPreviewFrame(final byte[] bytes, final Camera camera) {
Log.d("mmmmm", "onPreviewFrame: " + bytes.length);
if (isProcessingFrame) {
LOGGER.w("Dropping frame!");
return;
}
try {
// Initialize the storage bitmaps once when the resolution is known.
if (rgbBytes == null) {
Camera.Size previewSize = camera.getParameters().getPreviewSize();
previewHeight = previewSize.height;
previewWidth = previewSize.width;
rgbBytes = new int[previewWidth * previewHeight];
onPreviewSizeChosen(new Size(previewSize.width, previewSize.height), 90);
}
} catch (final Exception e) {
LOGGER.e(e, "Exception!");
return;
}
isProcessingFrame = true;
yuvBytes[0] = bytes;
yRowStride = previewWidth;
imageConverter =
new Runnable() {
@Override
public void run() {
ImageUtils.convertYUV420SPToARGB8888(bytes, previewWidth, previewHeight, rgbBytes);
}
};
postInferenceCallback =
new Runnable() {
@Override
public void run() {
camera.addCallbackBuffer(bytes);
isProcessingFrame = false;
}
};
processImage();
}
Код для создания растрового изображения - как мне сделать так, чтобы массив байтов передавался в метод выше? Размеры этого растрового изображения полностью отличаются от размеров байтового массива, переданного вышеописанному методу с камеры.
// converts image from image view to bitmap
BitmapDrawable drawable = (BitmapDrawable) imgUpload.getDrawable();
Bitmap bitmap = drawable.getBitmap();