Как изменить цвет пикселя изображения в реальном времени - PullRequest
0 голосов
/ 28 декабря 2018

Мне нужно разработать функцию, которая изменяет цвет пикселя изображения в режиме реального времени, в настоящее время я написал эту часть кода, которая, кажется, работает частично

private void changePixelsColor() {
        try {
        tileView.buildDrawingCache(true);
        tileView.setDrawingCacheEnabled(true);

        int height = tileView.getDrawingCache().getHeight();
        int width = tileView.getDrawingCache().getWidth();
        int[] pixelNumber = new int[height * width];

        tileView.getDrawingCache().getPixels(pixelNumber, 0, width, 0, 0, width, height);

        for (int i = 0; i < pixelNumber.length; i++) {
            if (String.valueOf(pixelNumber[i]).length() > 2) {
                String hexColor = "#" + Integer.toHexString(pixelNumber[i]).substring(2);
                if (hexColor.compareToIgnoreCase("#f0f1f0") == 0) {
                    pixelNumber[i] = Color.RED;
                }
            }
        }

        tileView.getDrawingCache().setPixels(pixelNumber, 0, width, 0, 0, width, height);

        File file = new File(MYPATH);
        FileOutputStream out = new FileOutputStream(file);
        Bitmap mappedCar = Bitmap.createBitmap(tileView.getDrawingCache());
        mappedCar.compress(Bitmap.CompressFormat.JPEG, 100, out);
        mappedCar.recycle();
        out.flush();
        out.close();

        tileView.setDrawingCacheEnabled(false);
        tileView.destroyDrawingCache();
    } catch (Exception e) {

    }       
}

В частности, я использую "TileView "библиотека, чтобы показать пользователю изображение (я упрощаю объяснение), в определенной части кода мне нужно отсканировать все пиксели изображения и заменить некоторые (например, # f0f1f0 красным).

В настоящее время я могу получить карту пикселей и понять для каждого из них, какого она цвета.Что я не могу сделать, это изменить цвета изображения в режиме реального времени и сохранить результат в файл.

/ ********************* РЕДАКТИРОВАТЬ1 ********************* /

enter image description here

...