Topic: Problema modulo cImage  (Letto 2828 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline whowas

  • python unicellularis
  • *
  • Post: 6
  • Punti reputazione: 0
    • Mostra profilo
Problema modulo cImage
« il: Gennaio 17, 2016, 15:34 »
Salve ragazzi ho un problema,
ho provato ad importare un immagine con il modulo cImage, e fin qui nessun errore. Tuttavia quando provo a salvare il file con nuovo nome (immagini .gif) il salvataggio avviene con successo solamente se la dimensione della nuova immagine si aggira sui pochi Pixel.
Per quanto riguarda il salvataggio di dimensioni un pò più grandi il sistema mi avverte di un errore del tipo: Couldn't open file to write.

Qualcuno sa aiutarmi ?

Offline riko

  • python deus
  • *
  • moderatore
  • Post: 7.453
  • Punti reputazione: 12
    • Mostra profilo
    • RiK0 Tech Temple
Re: Problema modulo cImage
« Risposta #1 il: Gennaio 17, 2016, 17:38 »
Qualcuno sa aiutarmi ?

E' probabile.

Offline Giornale di Sistema

  • python sapiens sapiens
  • ******
  • Post: 3.124
  • Punti reputazione: 4
    • Mostra profilo
    • Distillato di Python
Re: Problema modulo cImage
« Risposta #2 il: Gennaio 17, 2016, 17:41 »
Qualcuno sa aiutarmi ?

Vedendo un po' di codice, sapendo la versione del modulo, di Python, il sistema operativo usato, chissà, magari.

Offline RicPol

  • python sapiens sapiens
  • ******
  • Post: 3.154
  • Punti reputazione: 9
    • Mostra profilo
Re: Problema modulo cImage
« Risposta #3 il: Gennaio 17, 2016, 19:32 »
Ma che cos'è questo modulo "cImage"? ma è lo stesso modulo "image" di pochi giorni fa? Ma mi sapete spiegare perché ciclicamente affiorano delle persone che si rifiutano con tutte le forze di usare gli strumenti corretti per gestire le immagini in python? Ma c'entra qualche esame da qualche parte? E' di nuovo SOS Unical? Perché se è così, sta diventando un caso da chiamare la Gabanelli...

Offline whowas

  • python unicellularis
  • *
  • Post: 6
  • Punti reputazione: 0
    • Mostra profilo
Re: Problema modulo cImage
« Risposta #4 il: Gennaio 17, 2016, 20:23 »
Link modulo cImage.py : https://drive.google.com/open?id=0B5gPL4DvJdY3RUFENVdmbFNWTU0
Comunque si centra per un esame (Unical), Sistema Operativo : Windows 10 Pro 64 bit, Versione Python: 3.5, tipologia

esatta del problema:

   [codice] finestra1 = ImageWin("Image Window",image.getWidth(),image.getHeight())
    image.setPosition(0,0)

    image.draw(finestra1)

    Clicks = finestra1.captureClicks(2)
    
    finestra1.exitOnClick()


    xl = Clicks [1][0] - Clicks[0][0]
    yl = Clicks [1][1] - Clicks[1][0]

    image2 = EmptyImage(xl,yl)

    for row in range(Clicks[1][0], Clicks[1][1]):
        for col in range(Clicks[0][0], Clicks[0][1]):
            newpixel = image.getPixel(col,row)
            image2.setPixel(col - Clicks[0][0],row - Clicks[1][0],newpixel)

    finestra2 = ImageWin("Finestra",image.getWidth(),image.getHeight())

    image2.draw(finestra2)
    
    finestra2.exitOnClick()

    name = "new"

    image2.save(name)[/codice]

Teoricamente questo codice serve a ritagliare un immagine tramite due click (Selezione da un punto destra superiore a uno

sinistro inferiore) e fin qui tutto ok. Tuttavia sull image2.save funziona soltanto se l'immagine ritagliata è piccola,

mentre se il nuovo ritaglio prevede il salvataggio di un immagine più grande da un errore del tipo Couldn'd open file to

write.
Sapreste come risolvere ?
« Ultima modifica: Gennaio 17, 2016, 20:29 da whowas »

Offline RicPol

  • python sapiens sapiens
  • ******
  • Post: 3.154
  • Punti reputazione: 9
    • Mostra profilo
Re: Problema modulo cImage
« Risposta #5 il: Gennaio 17, 2016, 21:22 »
> Link modulo cImage.py : https://drive.google.com/open?id=0B5gPL4DvJdY3RUFENVdmbFNWTU0

Allora, cominciamo a risolvere i problemi fondamentali, ok?
La risorsa che hai linkato è protetta. *Potresti* usare comunque google drive, e imparare a rendere pubblici i tuoi link... Ma, siccome vogliamo imparare a programmare, allora usiamo gli strumenti che di solito si usano per pubblicare codice: GitHub, o (molto più indicato in questo caso) Pastebin. Ce ne sono anche altri, ma direi che potresti cominciare a impratichirti con questo, se vuoi interagire con una comunità di programmatori.

> per un esame (Unical)
e su questo, cedo la parola... questo forum è frequentato dai massimi esperti di Python on Unical (detto anche Punical, no pun intended).

Offline riko

  • python deus
  • *
  • moderatore
  • Post: 7.453
  • Punti reputazione: 12
    • Mostra profilo
    • RiK0 Tech Temple
Re: Problema modulo cImage
« Risposta #6 il: Gennaio 17, 2016, 23:46 »
Diciamola tutta: una comunita' di programmatori tende anche ad incazzarsi quando si usa pastebin per le cose per cui e' indicato github (o bitbucket o uno di quelli li).
Capire bene quando e' appropriato usare pastebin e' importante.

Ancora piu' importante e' capire quello che si sta facendo. Mostrarsi impacciati in generale scoraggia le persone ad aiutare (perche' si teme di dovere fare piu' sforzo del necessario e, soprattutto, che si debba dare aiuto su cose noiose e di base invece che su cose un pochetto piu' interessanti).

Offline whowas

  • python unicellularis
  • *
  • Post: 6
  • Punti reputazione: 0
    • Mostra profilo
Re: Problema modulo cImage
« Risposta #7 il: Gennaio 18, 2016, 07:49 »
Ho provato a utilizzare il link su diversi browser di vari pc e funziona... nessuna protezione il link può essere visualizzato da tutti...

Sul fatto di prendere in giro le persone questo non era mia intenzione e suppongo che se pensavo che le persone di questo forum non erano persone esperte ad aiutarmi non avrei mai scritto su questo forum. Purtroppo i link ai siti originali non li posso fare avrò sbagliato qualcosa nella pubblicazione del link, provvederò appena posso, tuttavia suppongo da come ho capito che la classe sia stata ampliata con altre funzioni. Comunque oggi pomeriggio provvederò a sistemare i danni fatti.

Una nota che non centra sull'aiuto: Sul fatto di incazzarsi le persone esperte dovrebbero capire che questo è un forum aperto a tutti, anche a chi sbaglia.
« Ultima modifica: Gennaio 18, 2016, 08:03 da whowas »

Offline Giornale di Sistema

  • python sapiens sapiens
  • ******
  • Post: 3.124
  • Punti reputazione: 4
    • Mostra profilo
    • Distillato di Python
Re: Problema modulo cImage
« Risposta #8 il: Gennaio 18, 2016, 08:23 »
Ho provato a utilizzare il link su diversi browser di vari pc e funziona... nessuna protezione il link può essere visualizzato da tutti...

Ora si, ieri sera no.

Offline RicPol

  • python sapiens sapiens
  • ******
  • Post: 3.154
  • Punti reputazione: 9
    • Mostra profilo
Re: Problema modulo cImage
« Risposta #9 il: Gennaio 18, 2016, 09:19 »
@Riko: per questo caso con pastebin ci vai in carrozza. Bitbucket/Git, quando la cosa si fa più complessa di uno snippet.

@OP: ecco, vedi... anche se oggi google drive funziona (perché nel frattempo abbiamo imparato a cambiare i settaggi, vero?  ;) ), comunque non permette di visualizzare il file in preview, e quindi ti tocca scaricarlo... il che è onestamente una scocciatura... Ecco perché occorre imparare a usare gli strumenti corretti.

Ora, per quanto riguarda il tuo problema:
1) è perfettamente possibile che sia un errore tuo: senza codice, non si può dire.
2) se non è un errore tuo, il problema sta nel modulo "cImage", e qui va a sapere. Se leggi il sorgente del modulo, vedi che si arrampica sugli specchi per fornire un certo set di funzionalità (aprire, salvare...) SIA nel caso in cui trova Pil installato, SIA nel caso in cui Pil non c'è. (Pil/Pillow è la libreria più usata per la gestione delle immagini in python... quella che perfino all'Unical, nel corso del prossimo secolo, potrebbero scoprire che esiste).
Se non può appoggiarsi a Pil, allora l'operazione di salvare l'immagine viene fatta affidandosi a tkinter.PhotoImage.write... ora, qui mi fermo... Bisognerebbe capire quali sono i possibili problemi di questa api di Tkinter... oltre tutto, nel modulo cImage, la chiamata a PhotoImage.write viene wrappata nel più classico dei bare except da programmatori della domenica, quindi non è neanche possibile leggere la vera eccezione che solleva Tkinter.
Bisognerebbe togliere il bare except, capire qual è il problema con Tkinter, testare un po'... cosa che non ho tempo di fare (e neanche tanta voglia... sorry, ma mettermi a debuggare l'ennesimo pasticcio di modulo amatoriale per la gestione delle immagini in python...).
Se non hai voglia (comprensibilmente) di andare a fondo del problema, la cosa migliore è che tu installi anche Pil (nella sua versione moderna che si chiama Pillow... cerca in rete). Trovando Pil installato, il modulo cImage dovrebbe appoggiarsi a Pil e permetterti di salvare in modo più robusto.

Offline riko

  • python deus
  • *
  • moderatore
  • Post: 7.453
  • Punti reputazione: 12
    • Mostra profilo
    • RiK0 Tech Temple
Re: Problema modulo cImage
« Risposta #10 il: Gennaio 18, 2016, 11:38 »
> @Riko: per questo caso con pastebin ci vai in carrozza. Bitbucket/Git, quando la cosa si fa più complessa di uno snippet.

Certo. Il mio era un commento piu' in generale, per evitare che OP pensi di imparare "solo" pastebin (ma poi cosa c'e' da "imparare" su pastebin?) e usarlo per tutto. No, non funziona.

> 1) è perfettamente possibile che sia un errore tuo: senza codice, non si può dire.

+1

> 2) se non è un errore tuo, il problema sta nel modulo "cImage", e qui va a sapere. Se leggi il sorgente del modulo, vedi che si arrampica sugli specchi per fornire un certo set di funzionalità (aprire, salvare...) SIA nel caso in cui trova Pil installato, SIA nel caso in cui Pil non c'è. (Pil/Pillow è la libreria più usata per la gestione delle immagini in python... quella che perfino all'Unical, nel corso del prossimo secolo, potrebbero scoprire che esiste).

Per inciso, il modulo e' veramente spaventevole... vorrei davvero che la gente resistesse all'impulso onanistico di scrivere un modulo (male) ed infliggerlo agli studenti. Scrivete un modulo *bene* e insegnate per bene. Solo che e' difficile... e bisogna sapere *davvero* un po' di software engineering, mica solo insegnarlo. Poi capisco la tentazione, eh... e' talmente sbagliata l'idea da fare paura.

> Se non hai voglia (comprensibilmente) di andare a fondo del problema, la cosa migliore è che tu installi anche Pil (nella sua versione moderna che si chiama Pillow... cerca in rete). Trovando Pil installato, il modulo cImage dovrebbe appoggiarsi a Pil e permetterti di salvare in modo più robusto.

+1

Offline riko

  • python deus
  • *
  • moderatore
  • Post: 7.453
  • Punti reputazione: 12
    • Mostra profilo
    • RiK0 Tech Temple
Re: Problema modulo cImage
« Risposta #11 il: Gennaio 18, 2016, 11:43 »
> Ho provato a utilizzare il link su diversi browser di vari pc e funziona... nessuna protezione il link può essere visualizzato da tutti...

Non era un problema di browser. Era un problema di permessi, su...

> Sul fatto di prendere in giro le persone questo non era mia intenzione e suppongo che se pensavo che le persone di questo forum non erano persone esperte ad aiutarmi non avrei mai scritto su questo forum.

Ora, faccio un po' fatica a capire cosa intendi (grammatica: i congiuntivi sono stati inventati per un motivo), ma non mi pare che nessuno ti abbia accusato di stare prendendo in giro.

> Purtroppo i link ai siti originali non li posso fare avrò sbagliato qualcosa nella pubblicazione del link, provvederò appena posso, tuttavia suppongo da come ho capito che la classe sia stata ampliata con altre funzioni.

???

E questo da dove salta fuori?

> Una nota che non centra sull'aiuto: Sul fatto di incazzarsi le persone esperte dovrebbero capire che questo è un forum aperto a tutti, anche a chi sbaglia.

Le persone che iniziano, invece, dovrebbero capire che non sapere non e' una scusa. Ci sono tantissime risorse sul web per imparare. Se si vuole qualche puntatore diretto, basta chiedere. Io mi limito a dire che, nel mondo ideale, chi e' niubbo cerca di mostrarsi meno niubbo di quello che e'. Il vantaggio e' che ricevera' molto piu' aiuto. Poi ognuno faccia come crede.

Offline whowas

  • python unicellularis
  • *
  • Post: 6
  • Punti reputazione: 0
    • Mostra profilo
Re: Problema modulo cImage
« Risposta #12 il: Gennaio 18, 2016, 14:09 »
Scusate se a volte mi esprimo in maniera pessima e scusate la mia ignoranza. Proverò ad installare Pil e fare qualche altra prova. Grazie per l'aiuto :ok: