Torna indietro   Hardware Upgrade Forum > Software > Programmazione

OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum
OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum
Abbiamo partecipato all'OVHcloud Summit 2025, conferenza annuale in cui l'azienda francese presenta le sue ultime novità. Abbiamo parlato di cloud pubblico e privato, d'intelligenza artificiale, di computer quantistici e di sovranità. Che forse, però, dovremmo chiamare solo "sicurezza"
Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI Care e DisplayPort 2.1a
Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI Care e DisplayPort 2.1a
Abbiamo potuto mettere le mani in anteprima sul nuovo monitor MSI dedicato ai giocatori: un mostro che adotta un pannello QD-OLED da 26,5 pollici con risoluzione 2560 x 1440 pixel, frequenza di aggiornamento fino a 500 Hz e tempo di risposta di 0,03 ms GtG
DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro
DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro
DJI aggiorna la sua linea di droni ultraleggeri con Neo 2, un quadricottero da 160 grammi che mantiene la compattezza del predecessore ma introduce una stabilizzazione meccanica a due assi, sensori omnidirezionali e un sistema LiDAR
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 22-05-2009, 18:22   #1
Ciampa
Member
 
Iscritto dal: Sep 2005
Città: Santo Stefano Belbo
Messaggi: 216
[JAVA] ruotare immagine di 90 gradi

salve,
mi servirebbe aiuto su come ruotare un immagine di 90 gradi; nel programma prendo in input un file.yuv (ogni pixel ha su 8 bit l'informazione del suo colore in scala di grigi; un vettore della dimensione della risoluzione dell'immagine immagazzina per ogni pixel il suo valore) e lo stampo su consolle usando caratteri cercanco di dare l'impressione dell'immagine. La consegna richiede anche di stampare un negativo dell'immagine e di ruotarla di 90 gradi: bisognerebbe ottenerlo usando un vettore d'appoggio, al quale vengono passati i pixel in modo da ruotare l'immagine di 90 gradi; ma il massimo che ho ottenuto è stata l'immagine ruotata di 90 gradi, ma poi anche simmetrizzata rispetto all'asse y. Qualcuno riesce a indicarmi il giusto algoritmo di passaggio tra i due vettori (da picture[] a picture90[]?

qui c'è un pezzo di codice: il primo metodo è la stampa normale, il secondo dovrebbe essere quella di rotazione.
Codice:
if (risposta.compareTo("stampa") == 0) 
                        for (int y=0; y<altezza; y++) {
				for(int x=0; x<larghezza; x++) {
					stampa (picture[(y*(int)altezza) + x]);
				}
			System.out.println();
			}


			else if (risposta.compareTo("ruota") == 0) {
				int picture90[] = new int [(int)altezza * (int)larghezza];
				for (int y=0; y<altezza; y++)
					for(int x=0; x<larghezza; x++) {
						picture90[(x*(int)larghezza)+y]=picture[y*(int)larghezza+x];
					}
				
				for (int y=0; y<altezza; y++) {
					for(int x=0; x<larghezza; x++) {
						stampa (picture90[(y*(int)altezza) + x]);
					}
				System.out.println();
				}
			}

l'intero progetto è disponibile qui

ps: il nome del file da inserire è test.yuv
le dimensioni sono 64 x 64
__________________
Ma ci sarà un souvenir, che ci riporterà solo certi momenti..E sarà un bel souvenir, una fotografia, una canzone fra i tempi..
Ma ci sarà un souvenir, che ci commuoverà fino a farci contenti..Tieniti il tuo souvenir, da mettere via poi ridicendoti "avanti"..
[Ligabue, Sarà Un Bel Souvenir]

Ultima modifica di Ciampa : 23-05-2009 alle 10:29.
Ciampa è offline   Rispondi citando il messaggio o parte di esso
Old 22-05-2009, 20:52   #2
Oceans11
Senior Member
 
L'Avatar di Oceans11
 
Iscritto dal: Sep 2005
Città: Torino
Messaggi: 606
Se questa è la stampa normale:
Codice:
public static void stampa(int[][] v) {
	for (int i = 0; i < v.length; i++) {
		for (int j = 0; j < v[i].length; j++) {
			System.out.print(v[i][j]);
		}
		System.out.println();
	}	
}
questa è la stampa ruotata:
Codice:
public static void stampaRuotata(int[][] v) {
	for (int i = 0; i < v.length; i++) {
		for (int j = 0; j < v[i].length; j++) {
			System.out.print(v[v.length - j - ][i]);
			}
			System.out.println();
	}
}
Gli stessi cicli li puoi usare anche per copiare su un'altra matrice.
__________________
"Se proprio dovete piratare un prodotto, preferiamo che sia il nostro piuttosto che quello di qualcun altro." [Jeff Raikes]
"Pirating software? Choose Microsoft!"
Oceans11 è offline   Rispondi citando il messaggio o parte di esso
Old 23-05-2009, 10:28   #3
Ciampa
Member
 
Iscritto dal: Sep 2005
Città: Santo Stefano Belbo
Messaggi: 216
quindi dovrei rivdere il programma mettendo una matrice al posto del vettore ?
__________________
Ma ci sarà un souvenir, che ci riporterà solo certi momenti..E sarà un bel souvenir, una fotografia, una canzone fra i tempi..
Ma ci sarà un souvenir, che ci commuoverà fino a farci contenti..Tieniti il tuo souvenir, da mettere via poi ridicendoti "avanti"..
[Ligabue, Sarà Un Bel Souvenir]
Ciampa è offline   Rispondi citando il messaggio o parte di esso
Old 23-05-2009, 10:47   #4
Oceans11
Senior Member
 
L'Avatar di Oceans11
 
Iscritto dal: Sep 2005
Città: Torino
Messaggi: 606
No! ti ho fatto proprio un esempio che ti dovrebbe mostrare come la rappresentazione grafica (la stampa a video) e la struttura interna dove è memorizzato l'oggetto sono abbastanza indipendenti!

Premettendo che non ho letto il codice dell'intero progetto, tu hai un vettore? beh però per visualizzare l'immagine devi stamparlo a mò di matrice giusto? E per visualizzare l'immagine ruotata basta che quando stampi "mischi" un pò gli indici
__________________
"Se proprio dovete piratare un prodotto, preferiamo che sia il nostro piuttosto che quello di qualcun altro." [Jeff Raikes]
"Pirating software? Choose Microsoft!"
Oceans11 è offline   Rispondi citando il messaggio o parte di esso
Old 23-05-2009, 11:23   #5
Ciampa
Member
 
Iscritto dal: Sep 2005
Città: Santo Stefano Belbo
Messaggi: 216
scusa ma da un punto in poi non ti seguo: Ho capito che stampa su schermo e modo di immagazzinare i dati sono abbastanza indipendenti, ma non riesco a capire come applicare l'algoritmo hai postato al mio programma:

1. la tua funzione prendi cmq in ingresso una matrice int[][], io ho un vettore

2. nel mio programma, leggo ogni pixel dell'immagine e memorizzo nel vettore il suo valore da 0 a 255 in scala di grigi; la funzione stampa che vedi nel mio codice stampa '.', 'o', '*', 'A' a seconda che il valore sia più o meno alto, in modo da dare l'iilusione della sfumatura in bianco e nero

3. la trasformazione da applicare all'immagine sarebbe (considerando l'orientamento dell'asse y verso il basso)
x'=y
y'=larghezza -x
io ho già provato a mischiare gli indici, ma praticamente nella funzione sarei arrivato a
x'=y
y'=x
però non so come sistemare gli indici in modo corretto perchè ogni volta che ho provato mi dà errore, visto che esco dal limite del vettore

scusa la cocciutaggine
__________________
Ma ci sarà un souvenir, che ci riporterà solo certi momenti..E sarà un bel souvenir, una fotografia, una canzone fra i tempi..
Ma ci sarà un souvenir, che ci commuoverà fino a farci contenti..Tieniti il tuo souvenir, da mettere via poi ridicendoti "avanti"..
[Ligabue, Sarà Un Bel Souvenir]
Ciampa è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum OVHcloud Summit 2025: le novità del cloud...
Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI Care e DisplayPort 2.1a Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI C...
DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro DJI Neo 2 in prova: il drone da 160 grammi guada...
L'IA "seria" di Appian è diversa: inserita nei processi e rispetta dati e persone L'IA "seria" di Appian è divers...
Polestar 3 Performance, test drive: comodità e potenza possono convivere Polestar 3 Performance, test drive: comodit&agra...
A causa di un problema durante il lancio...
Per il responsabile delle Porsche 911 e ...
Ritorno di fiamma tra Apple e Intel: gal...
Horses è stato 'bannato': l'horro...
Truffe finanziarie sui social, scatta il...
Tesla inaugura a Busto Arsizio la postaz...
Barriere autostradali fotovoltaiche: Ana...
Accordo Gruppo FS-Microsoft: l'IA dell'a...
Prezzo mai visto: le Sony WH-1000XM5 Spe...
Microsoft amplierà il suo laborat...
ECOVACS DEEBOT T30C OMNI GEN2 a 349€: co...
Super offerta Amazon: HP OMEN MAX 16 con...
L'offerta nascosta di Very Mobile fa gol...
LEAP 71: completata l'accensione di un p...
Furto di segreti industriali in TSMC: pe...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 01:22.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v