Мне нужно нарисовать растровое изображение на холсте, но мне нужно удалить черные пиксели в прозрачные. Есть ли простой способ сделать это в Android? Bitmap.clearColor, похоже, ведет себя по-другому.Нарисуйте растровое изображение на холсте, заменяя черные пиксели на прозрачные
1
A
ответ
1
Убедитесь, что наложенное растровое изображение, которое вы создали, на самом деле прозрачно. Создайте его с конфигурацией ARGB_8888 явно. http://developer.android.com/reference/android/graphics/Bitmap.Config.html
И вы можете перенести создание растрового изображения из метода reDraw и создать его только один раз.
1
он будет работает на на ощупь
import android.app.Activity;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Bitmap.Config;
import android.graphics.BlurMaskFilter.Blur;
import android.graphics.BitmapFactory;
import android.graphics.BlurMaskFilter;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.PorterDuff.Mode;
import android.graphics.PorterDuffXfermode;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
public class StartActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(new TouchView(this));
}
class TouchView extends View{
Bitmap bgr;
Bitmap overlayDefault;
Bitmap overlay;
Paint pTouch;
int X = -100;
int Y = -100;
Canvas c2;
public TouchView(Context context) {
super(context);
bgr = BitmapFactory.decodeResource(getResources(),R.drawable.bgr);
overlayDefault = BitmapFactory.decodeResource(getResources(),R.drawable.over);
overlay = BitmapFactory.decodeResource(getResources(),R.drawable.over).copy(Config.ARGB_8888, true);
c2 = new Canvas(overlay);
pTouch = new Paint(Paint.ANTI_ALIAS_FLAG);
pTouch.setXfermode(new PorterDuffXfermode(Mode.SRC_OUT));
pTouch.setColor(Color.TRANSPARENT);
pTouch.setMaskFilter(new BlurMaskFilter(15, Blur.NORMAL));
}
@Override
public boolean onTouchEvent(MotionEvent ev) {
switch (ev.getAction()) {
case MotionEvent.ACTION_DOWN: {
X = (int) ev.getX();
Y = (int) ev.getY();
invalidate();
break;
}
case MotionEvent.ACTION_MOVE: {
X = (int) ev.getX();
Y = (int) ev.getY();
invalidate();
break;
}
case MotionEvent.ACTION_UP:
break;
}
return true;
}
@Override
public void onDraw(Canvas canvas){
super.onDraw(canvas);
//draw background
canvas.drawBitmap(bgr, 0, 0, null);
//copy the default overlay into temporary overlay and punch a hole in it
c2.drawBitmap(overlayDefault, 0, 0, null); //exclude this line to show all as you draw
c2.drawCircle(X, Y, 80, pTouch);
//draw the overlay over the background
canvas.drawBitmap(overlay, 0, 0, null);
}
}
} `
0
Проверьте это answer. Это не принято, но должно работать. Не забудьте включить аппаратное ускорение для просмотра, где вы используете это растровое изображение.
Смежные вопросы
- 1. Нарисуйте растровое изображение (из рисунка) на холсте с цветным фоном
- 2. Нарисуйте растровое изображение на холсте с пользовательской формой
- 3. Нарисуйте фоновое изображение на холсте
- 4. Рисовать растровое изображение на холсте
- 5. Прозрачные пиксели
- 6. Нарисуйте трапецию на холсте
- 7. прозрачные пиксели под фигурой в HTML-холсте
- 8. Android - Нарисуйте растровое изображение
- 9. Нарисуйте масштабированное растровое изображение на холст?
- 10. Странные черные пиксели на модели
- 11. Нарисуйте искаженное изображение на холсте html5
- 12. Как компенсировать растровое изображение, нарисованное на холсте?
- 13. Как установить растровое изображение на холсте? AS3
- 14. Повернуть растровое изображение на холсте Android
- 15. Поверните растровое изображение на холсте Android
- 16. Плитка растровое изображение на холсте SurfaceView Холст
- 17. Растровое изображение не отображается на холсте
- 18. Пиксели, плотность, разрешение экрана - растровое изображение на поверхности?
- 19. Нарисуйте область на холсте
- 20. Нарисуйте линию на холсте
- 21. Нарисуйте вид на холсте
- 22. Установите пиксели холста на прозрачные снова
- 23. Нарисуйте мой рисунок на холсте?
- 24. Прозрачные пиксели на нижних углах UIImage?
- 25. Android Bitmap: конвертировать прозрачные пиксели в цвет
- 26. ява буферизацией Изображение: Детектирование черные пиксели
- 27. Нарисуйте текст на растровое изображение или динамически на UI
- 28. C# белые или черные нежелательные пиксели появляются на изображении
- 29. Нарисуйте png на другой png на холсте
- 30. заменяя одно растровое изображение на второе одно холст android
принять ответ, если этот ответ поможет вам – Rohit
Я в конечном итоге делаю setPixels для этого, опубликует код – traderp