# Hintergrund von Bitmap entfernen



## member42 (4. Nov 2018)

Hallo,
ich habe eine Bitmap mit rosa Hintergrund ( Argb (255,238,112,205)). Den rosa Hintergrund möchte ich praktisch aus dem Bild filtern, sodass nur das eigentliche Bild sichtbar ist. Dafür laufe ich jeden Pixel von dem Bild ab und schaue, ob seine Darbe gleich der Hintergrundfarbe ist.

Hier mein Code:

```
private Bitmap removeBackground() {

    int pixel,redValue,blueValue,greenValue,alpha = 0;
    birdSprite = birdSprite.copy(Bitmap.Config.ARGB_8888, true);

    for(int i=0; i<birdSprite.getWidth(); i++) {

        for(int j=0; j<birdSprite.getHeight(); j++) {

            pixel = birdSprite.getPixel(i,j);

            redValue = Color.red(pixel);
            blueValue = Color.blue(pixel);
            greenValue = Color.green(pixel);
            alpha = Color.alpha(pixel);

            if(alpha==255 && redValue == 238&& greenValue == 112 && blueValue == 205 ) {
                Log.d("Hintergrund ", "Hintergrundpixel");

               birdSprite.setPixel(i,j,Color.TRANSPARENT);
            } else {
                birdSprite.setPixel(i,j,pixel);
            }

        }
    }

    return birdSprite;
}
```

So wird der aber Hintergrund schwarz.
Woran liegt das?
Danke im Voraus.


----------



## mihe7 (4. Nov 2018)

Was passiert denn, wenn Du am Anfang (z. B. vor/nach dem Kopieren) `birdSprite.setHasAlpha(true);` ausführst?


----------



## member42 (4. Nov 2018)

Danke, jetzt funktioniert es einwandfrei. Frag mich nur wie man auf sowas kommen soll


----------

