PDA

View Full Version : [Java] Image bounds...


ally
30-11-2010, 10:21
...sto costruendo un piccolo programma sfruttando le librerie awt...ora in un pannello ho collocato delle png con trasparenza dalla forma irregolare...ho aggiunto un MouseMotionListener per rilevare le coordinate del cursore...ad ogni movimento simulo l'area dell'immagine costruendo un rettangolo pari alle dimensioni della png...il guaio è che vorrei eliminare la parte in trasparenza dal contatto...


private int getHeaderHit(int x,int y){

RoundRectangle2D hit = new RoundRectangle2D.Double(20, 20, image.getWidth(this), image.getHeight(this),image.getHeight(this),image.getHeight(this));
if (hit.contains(x, y)) {
return 1;
}


return 0;
}


...c'è un modo per ottenere i confini della png privati delle trasparenze?...

banryu79
30-11-2010, 10:52
In pratica vorresti ricavare la Shape dell'area non trasparente e usare quella per l'hit test? Devi trovare una libreria di terze parti che lo faccia oppure implementare da te questa funzionalità, che io sappia non esiste niente di simile nel JDK.

ally
30-11-2010, 11:11
...sto cercando di eseguire un controllo fine in base ad un array di int che descrivono il valore alpha dei singoli pixel dell'immagine...quindi rilevo una possibile collisione usando il metodo grossolano del rettangolo per poi esaminare in maniera piu' fine le coordinate con la trasparenza...

banryu79
30-11-2010, 11:41
...sto cercando di eseguire un controllo fine in base ad un array di int che descrivono il valore alpha dei singoli pixel dell'immagine...quindi rilevo una possibile collisione usando il metodo grossolano del rettangolo per poi esaminare in maniera piu' fine le coordinate con la trasparenza...
Sì, è un'ottima soluzione: mappi le coordinate del click del mouse con il corrispondente pixel della corrispondete immagine e ne controlli il valore del canale alpha.