RISOLTO Python - cImage e gestione immagini

Pubblicità
Stato
Discussione chiusa ad ulteriori risposte.
a questo punto non ha senso creare il duplicato no? basterebbe creare una matrice vuota e prendere gli elementi dalla principale....
 
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().
 
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)
 
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:
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.
Pubblicità
Pubblicità
Indietro
Top