Nakładanie się obrazów

0

Witam, mam pewien problem z obrazkami. Mam 2 obrazki (czarny ludzik na białym tle), chciałbym uzyskać efekt, gdy te obrazki nakładają się na siebie, to aby pierwszy obrazek nie znikał za białym tłem drugiego.
Próbowałem tym kodem:

 public void paintComponent(Graphics g)
{
     Graphics2D g2 = (Graphics2D) g;
     ...
     g2.drawImage(pierwszy,0,0,null);
     g2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER,0.5f));
     g2.drawImage(drugi,0,0,null);
}

aczkolwiek, problem jest taki, że albo obraz staje się strasznie wyblakły, albo część pierwszego obrazka, która nakłada się na drugi obrazek jest wyblakła. Przechodząc do sedna, czy da rade tak rysować te obrazki, aby ich białe tło, nie przysłaniało reszty?
Z góry dzięki.
Pozdrawiam.

0

Najprościej jest operować na obrazkach, które nie posiadają tła np. formaty gif czy też png. Wtedy problem z białym tłem znika.

0

Każdy biały piksel musi mieć alfe na 255, a czarny na 0. Teraz ustawiasz alfe dla całych obrazków i dlatego masz wyblakłe. Najlepiej dodać kanał alfa w programie graficznym np. gimpie i ręcznie wymazać tło.

0

dzięki popróbuję.

1 użytkowników online, w tym zalogowanych: 0, gości: 1