2018 Android растровий колір маски, видалення кольору android

Androids .help Русский Android-спільнота.

Я створюю растрові, поруч я малюю другий суцільний колір графіки на вершині. А тепер я хочу, щоб змінити перший растрового зображення, так суцільний колір, що я намалював на ньому буде прозорим.

Або просто, я хочу, щоб видалити всі пікселі одного кольору від растрового зображення. Я havie перепробував все colorfilter і xfermode не пощастило, чи є інша можливість для видалення кольору, відмінну робити це піксель за пікселем?

Top 5 Respuesta

Піксель за пікселем, ненайвидатніші поганий варіант. Тільки не називайте SetPixel всередині циклу. Заповніть масив ARGB цілих чисел з getPixels, змінити його на місці, якщо вам не потрібно, щоб зберегти оригінал, а потім викликати setPixels в кінці. Ви можете зробити цей рядок за рядком, якщо пам'ять є проблемою, або ви можете просто зробити все це в одному кадрі. Вам не потрібно, щоб заповнити всю растрового зображення для накладається кольору, так як ви тільки що делатьпростой заміни (якщо поточний піксель color1, встановіть цвет2).

Це працює для видалення певного кольору з растрового зображення. Основна частьіспользованіе AvoidXfermode. Слід також працювати, якщо намагається змінити один колір на інший колір.

Я повинен додати, що це відповідає на питання титул видалення кольору з растрового зображення. Конкретне питання, напевно, краще вирішувати за допомогою PorterDuff Xfermode какOP сказав.

У моєму конкретному випадку використання, я виніс сторінку в PDF (через APV PDFView) в масив пікселів int []. що я збираюся перейти в Bitmap.createBitmap (int [], int, int, Bitmap.Config). Ця сторінка містить рядки мистецтва звертається на білому тлі, і мені потрібно видалити фон, зберігаючи при цьому згладжування.

Я не міг знайти спосіб Porter - Duff, що зробив саме те, що я хотів, так що я в кінцевому підсумку втрати стійкості і перебору пікселів і перетворюючи їх по одному. Результат був напрочуд простим і продуктивним:

Це ідеальний варіант для вітальні лінії мистецтва, оскільки будь-який колір може бути використаний для ліній без втрати згладжування. Я використовую червоний канал, але ви можете використовувати зелений, зрушуючи 16 біти замість 8 або синій, зрушуючи 24.

останні питання

Схожі статті