wingman87
18-11-2010, 19:30
Ho incluso il linguaggio nel titolo solo perché magari in Java esiste una soluzione preconfezionata ma il problema è di carattere generale.
Ho un'immagine di base e da essa vorrei ricavare un array di immagini contenente varie rotazioni di essa.
immagine -> immagini[]
dove ad esempio in immagini[0] avrò l'immagine stessa, in immagini[1] l'immagine ruotata di 45 gradi, in immagini[2] ruotata di 90 e così via.
Siccome però le immagini mi servono per creare un'animazione ho bisogno che le immagini risultanti abbiano tutte la stessa dimensione e che siano tutte centrate rispetto a una data coordinata.
Ora arriva il problema: vorrei ottimizzare lo spazio in memoria, quindi mi piacerebbe che le immagini avessero le dimensioni minime necessarie a soddisfare i requisiti di cui sopra (stessa dimensione e centrate).
Esiste un buon algoritmo per fare questo?
Spiego meglio il problema con un esempio:
dato un quadrato, se lo ruoto di 45 gradi ottengo un rombo, tuttavia l'immagine del quadrato può essere grande al minimo lato*lato mentre quella del rombo dovrà essere grande almeno diagonale*diagonale.
Vorrei una soluzione migliore di quella banale (se esiste): ritagliare le immagini prodotte dopo aver calcolato le zone limitrofe inutili in comune tra tutti i frame dell'animazione.
Ho un'immagine di base e da essa vorrei ricavare un array di immagini contenente varie rotazioni di essa.
immagine -> immagini[]
dove ad esempio in immagini[0] avrò l'immagine stessa, in immagini[1] l'immagine ruotata di 45 gradi, in immagini[2] ruotata di 90 e così via.
Siccome però le immagini mi servono per creare un'animazione ho bisogno che le immagini risultanti abbiano tutte la stessa dimensione e che siano tutte centrate rispetto a una data coordinata.
Ora arriva il problema: vorrei ottimizzare lo spazio in memoria, quindi mi piacerebbe che le immagini avessero le dimensioni minime necessarie a soddisfare i requisiti di cui sopra (stessa dimensione e centrate).
Esiste un buon algoritmo per fare questo?
Spiego meglio il problema con un esempio:
dato un quadrato, se lo ruoto di 45 gradi ottengo un rombo, tuttavia l'immagine del quadrato può essere grande al minimo lato*lato mentre quella del rombo dovrà essere grande almeno diagonale*diagonale.
Vorrei una soluzione migliore di quella banale (se esiste): ritagliare le immagini prodotte dopo aver calcolato le zone limitrofe inutili in comune tra tutti i frame dell'animazione.