Как совместить изображение с camera2 и растровое изображение на заставке? - PullRequest
0 голосов
/ 27 октября 2019

Я пытался объединить изображение с камеры2 и растровое изображение, когда требуется программа Imagesaver. Поэтому я попробовал пример в Интернете, но он не работает, и приложение не работает. В чем проблема этого кода?

Я думаю, что холст не работает должным образом. Но я не знаю точно, что это такое.

private byte[] byteArray;
private static Bitmap bitmap;

byteArray = getArguments().getByteArray("board");
bitmap = BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length);

private static class ImageSaver implements Runnable {

    private final Image mImage;
    private final File mFile;

    ImageSaver(Image image, File file) {
        mImage = image;
        mFile = file;
    }

    @Override
    public void run() {

        ByteBuffer buffer = mImage.getPlanes()[0].getBuffer();
        byte[] bytes = new byte[buffer.remaining()];
        buffer.get(bytes);

        Bitmap capBitmap = BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
        Bitmap combined = Bitmap.createBitmap(capBitmap, 0, 0, capBitmap.getWidth(), capBitmap.getHeight());
        capBitmap.recycle();

        Bitmap resize = Bitmap.createScaledBitmap(bitmap, capBitmap.getWidth(), capBitmap.getHeight(), true);
        resize.recycle();

        Canvas canvas = new Canvas(combined);
        canvas.drawBitmap(resize, 0, 0, new Paint());

        FileOutputStream output = null;
        try {
            output = new FileOutputStream(mFile);
            combined.compress(Bitmap.CompressFormat.JPEG, 100, output);

        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            mImage.close();
            if (null != output) {
                try {
                    output.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...