DrawBitmap to canvas с прозрачным растровым изображением, заменить исходные пиксели

Мое приложение позволяет пользователю редактировать изображение. Изображение отредактировано в «срезах»: пользователь выбирает часть большого изображения для редактирования (1), пользователь редактирует его (2, 3), а затем, когда пользователь заканчивает, отредактированный фрагмент копируется обратно по оригиналу Изображение (4). Вы можете увидеть упрощенную процедуру на следующем изображении.

Пример рабочего процесса

Проблема возникает, когда пользователь очищает некоторые пиксели в срезе (3) . Я не могу найти подходящий PorterDuff / Paint поэтому отредактированный фрагмент заменяет часть исходного изображения даже прозрачными пикселями. Я хочу получить результат, изображенный на (4)

Моя лучшая ставка пока заключается в использовании PorterDuff.SRC , но, как вы видите на изображении ниже, прозрачные пиксели становятся черными в исходном изображении. Если я установил цвет краски в Прозрачный, весь результат будет черным.

  mBlitPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC)); mImageCanvas.drawBitmap(mArenaBitmap, invertedMatrix, mBlitPaint); 

Я также пробовал SRC_OVER и даже mImageCanvas.drawARGB (0xff,0,0,0), но не повезло. В первом случае прозрачные пиксели просто игнорируются. Во втором прозрачные пиксели окрашены в черный цвет.

Пример результата

У меня тоже была эта проблема, и я не мог найти решение, к счастью, моя цель состояла в том, чтобы показать что-то, чтобы не редактировать его и не сохранять … я использовал разные уровни и, похоже, работал. Но если вы найдете решение этого вопроса, я хотел бы знать, как вы это сделали

Intereting Posts
Ошибка: Android-XML: размещение <WebView> в родительском элементе, который использует размер wrap_content, может привести к тонким ошибкам; Использовать match_parent Как узнать, какую версию ADT мы используем в eclipse? Добавление XML-файла ресурсов в проект приводит к исключению среды выполнения Легкий способ разрешения DNS SRV записей на Android Дублируемое значение в заголовке NavigationView после обновления текста заголовка Android: DOM vs SAX против разбора XMLPullParser? Как создать эмулятор API-15 с помощью Служб Google Play (Командная строка) Как удалить таблицы и базу данных с помощью Sqiltehelper в android Как показать активность как всплывающее окно другой активности? Android: можно получить пользовательский файл R.id В Android отключено вертикальное выравнивание текста Как получить имя getTopActivity или получить текущее имя пакета приложений в lollipop? Gradle, Android и местоположение SDK ANDROID_HOME Что происходит в ОС Android, когда слишком много приложений «спят» в фоновом режиме? Замененный фрагмент все еще видимый