Android canvas изменить цвет некоторых пикселей


У меня есть объект Canvas в начале. Мне нужно изменить цвет некоторых пикселей в зависимости от их текущего цвета. Как я могу сделать это должным образом?

Подробности:

У меня есть свой собственный класс, расширенный из ImageView. В методе onDraw(Canvas canvas) я рисую что-то со сторонним классом и имею только Canvas объект с результатом. Мне нужно после этого изменить цвет некоторых пикселей в зависимости от их текущего цвета.

3 7

3 ответа:

Предполагая, что у вас есть android.graphics.Canvas объект с именем canvas и X & Y есть точки, где вы хотите изменить пиксель, так что здесь вы идете

Вызов:

canvas.drawPoint(X, Y, paint);

Вот как вы initalize объект класса android.graphics.Paint то есть paint

Paint paint = new Paint();
paint.setStyle(Paint.Style.FILL);
paint.setColor(Color.WHITE);

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

Существует, вероятно, дюжина способов сделать это. Если вы хотите использовать подход холста, есть способ нарисовать растровый объект. Затем можно нарисовать объект на другом холсте. Растровый объект также может иметь функции для изменения пикселей.

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

Я рекомендую посмотреть на Более быстрый способ установить цвет растрового изображения (PNG) вместо пикселя за пикселем. Он содержит код для получения и установки цветов растрового изображения пиксель за пикселем (в вопросе), а также предложение по альтернативе пиксельному подходу (в ответе). Также возможно полезно: объяснение метода getPixels для растрового изображения в Android .