Zaznaczanie obszaru na obrazie

0

Witam, ktoś ma jakiś pomysł jak na obrazie zaznaczyć kwadratowy obszar, który można by formatować (np filtrować)(mecze sie nad tym juz ladne pare godzin jak ktos wie niech chociaŻ naprowadzi na trop ;-P )??

0

Jesze tylko dodam ze obraz wczytuje za pomoca BufferedImage i ImageIO.read

0

Nie wiem czy dokładnie o to Ci chodziło, ale pomogę Ci stworzyć obraz na podstawie 'wycinka' obrazu, będziesz mógł się na nim pobawić, a potem wrzucić w zmienionej wersji z powrotem 'na oryginalny' obraz. Podepnij zdarzenie na MousePressed i Released (bedziesz mial współrzędne wierzchołków prostokątnego obszaru punktów po przekątnej, w ten sposób wyznaczysz lewy górny wierzchołek, szerokość i wysokość 'zaznaczenia').

Stwórz teraz obraz:

GraphicsConfiguration gc = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().getDefaultConfiguration();
BufferedImage compatible = gc.createCompatibleImage(width,height,transparency); 
//transparency, np. Transparency.TRANSLUCENT jeżeli planujesz bawić się później przezroczem z AlphaComposite
//width,height - zaznaczonego obszaru

następnie wyciągnij kontekst graficzny tego obrazu:
Graphics g = compatible.getGraphics();
teraz masz 'pusty' obraz, teraz narysuj na nim zaznaczony obszar:
g.drawImage(imageNaKtorymZaznaczalesObszar,-x,-y,this); //x- współrzędna x wierzchołka, y - współrzędna y wierzchołka (górnego/lewego)
w ten sposób na stworzonym 'pustym' obrazie namalujesz pierwotny, ale ponieważ ten 'pusty' jest mniejszy, a rysować będziesz z 'minusowym' przesunięciem, wyrysujesz na nim tylko obszar, który zaznaczyłeś (jeżeli nic się w matematyce nie pomyliłem, na szybko piszę tego posta). Możesz się z nim pobawić, a potem narysować w odpowiednim miejscu starego obrazu (albo biorąc sposób powyższy - bezpośrednio NA pierwotnym obrazie, wyciągając jego kontekst graficzny).

pozdrawiam

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