Nakładanie się obrazów

Nakładanie się obrazów
BO
  • Rejestracja:prawie 11 lat
  • Ostatnio:prawie 11 lat
  • Postów:2
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:

Kopiuj
 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.

Madaoo
  • Rejestracja:ponad 12 lat
  • Ostatnio:ponad rok
  • Postów:490
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.


"Chodzenie po wodzie i tworzenie oprogramowania wg specyfikacji są łatwe, o ile woda i specyfikacja są zamrożone" - Edward V. Berard
Atlas500
  • Rejestracja:około 11 lat
  • Ostatnio:prawie 9 lat
  • Postów:82
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.


"Jeżeli człowiek to wymyślił, człowiek może to zrozumieć." Sochacki
BO
  • Rejestracja:prawie 11 lat
  • Ostatnio:prawie 11 lat
  • Postów:2
0

dzięki popróbuję.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.