RISOLTO Python - cImage e gestione immagini

Stato
Discussione chiusa ad ulteriori risposte.

Cotrox

Utente Attivo
229
7
a questo punto non ha senso creare il duplicato no? basterebbe creare una matrice vuota e prendere gli elementi dalla principale....
 

clessidra

Utente Attivo
766
272
CPU
VIA C3
GPU
Ati Rage
OS
linux - Red Hat 1.1
a questo punto non ha senso creare il duplicato no? basterebbe creare una matrice vuota e prendere gli elementi dalla principale....
Sì, non ha senso. Ma per la funzione ruota_novanta_gradi_d la duplicazione è necessaria per reverse().
 

Cotrox

Utente Attivo
229
7
allora... ho provato a ragionare direttamente sul programma che stavo scrivendo e catturati i pixel dell'immagine originale ho provveduto a invertire larghezza ed altezza ottenendo così la rotazione di 90 gradi a sinistra... ora però non riesco ad ottenere quella a destra... ho provato ad applicare .reverse() ma non riesco ahah... il codice è :
Codice:
def rotazione_immagine_sx_90():
    immagine = cImage.Image('immagine.gif')

    width = immagine.getWidth()
    height = immagine.getHeight()
    finestra = cImage.ImageWin("Rotazione verso sinistra: 90°",height,width)
    immagine.draw(finestra)

    newimg = cImage.EmptyImage(height,width)

    for riga in range(height):
        for colonna in range(width):
            old_pixel = immagine.getPixel(colonna,riga)
            newimg.setPixel(riga,colonna,old_pixel)
    newimg.draw(finestra)
 

clessidra

Utente Attivo
766
272
CPU
VIA C3
GPU
Ati Rage
OS
linux - Red Hat 1.1
Ho dato un'occhiata alla libreria, e mi sembra che la soluzione sia questa:
Python:
newim = EmptyImage(height,width)

# ruota di 90° a sx
for row in range(height):
    for col in range(width):
        oldpixel = oldimage.getPixel(col,row)
        newim.setPixel(row,width-col-1,oldpixel)

# ruota di 90° a dx
for row in range(height):
    for col in range(width):
        oldpixel = oldimage.getPixel(col,row)
        newim.setPixel(height-row-1,col,oldpixel)

Per concludere, io non sono un programmatore.
 
Ultima modifica:
  • Mi piace
Reazioni: Mursey

Cotrox

Utente Attivo
229
7
Ho dato una sistemata, funziona benissimo :D


Codice:
def rotazione_immagine_dx_90():
    immagine = cImage.Image('immagine.gif')

    width = immagine.getWidth()
    height = immagine.getHeight()
    finestra = cImage.ImageWin("Rotazione verso sinistra: 90°",height,width)
    immagine.draw(finestra)

    newimg = cImage.EmptyImage(height,width)
    
    for row in range(height):
        for col in range(width):
            old_pixel = immagine.getPixel(col,row)
            newimg.setPixel(height-row-1,col,old_pixel)
    newimg.draw(finestra)

Grazie mielle.... ora credo che il programma vada bene ahahah c'è un po' tutto.. avrei voluto fare anche il ridimensionamento i base a height e width in input ma fa niente, va bene anche cosi
 
Stato
Discussione chiusa ad ulteriori risposte.

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!