Non capisco l'errore HW3bis es 2

V
Vic999 (750 points)
0 19 23
asked Feb 24, 2019 in HW3bis by Vic999 (750 points)
recategorized Mar 2, 2019 by andrea.sterbini
Sono giorni che stò lavorando su questo esercizio, però per tutti i test (Tranne i primi 2) mi dà sempre questo errore. Cosa sbaglio?

TypeError: an integer is required (got type tuple) png.py:795: TypeError

During handling of the above exception, another exception occurred:

test_02.py:151:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
test_02.py:45: in do_test
    p.salva_immagine(fileOutPNG)
program02.py:203: in salva_immagine
    immagini.save(self.matrice, filename)
immagini.py:31: in save
    pngimg.save(filename)
png.py:1336: in save
    w.write(file, self.rows)
png.py:656: in write
    nrows = self.write_passes(outfile, rows)
png.py:805: in write_passes
    extend(row)

TypeError: int() argument must be a string, a bytes-like object or a number, not 'tuple'
259 views
closed with note: answered

2 Answers

_andrea_ (45670 points)
2 40 297
answered Feb 24, 2019 by _andrea_ (45,670 points)
Da qualche parte passi una tupla invece di un int mi pare
angelo.spognardi (4680 points)
37 62 96
answered Feb 27, 2019 by angelo.spognardi (4,680 points)
Ti conviene creare una funzione check_image_format da invocare prima della chiamata a salva_immagine: la funzione dovrebbe controllare che la tua immagine è sempre una lista di liste in cui ogni elemento è di tipo tuple con esattamente tre interi compresi fra 0 e 255. La funzione potresti chiamarla prima e dopo ogni operazione che va a modificare la tua immagine. Probabilmente durante le tue operazioni di manipolazione dell'immagine alteri la struttura corretta ed introduci delle tuple dove dovrebbero esserci interi.