In [43]: b = add_bordo(trecime, 20, (256, 256, 256))


In [44]: im.visd(b)

Traceback (most recent call last):


File "/opt/anaconda3/lib/python3.6/site-packages/IPython/core/formatters.py", line 345, in __call__

return method()


File "/home/andrea/Documents/Uni/Didattica/Prog1/2018-19/Lezioni/image.py", line 31, in _repr_png_

img.save(b)


File "/home/andrea/Documents/Uni/Didattica/Prog1/2018-19/Lezioni/png.py", line 1279, in save

w.write(file, self.rows)


File "/home/andrea/Documents/Uni/Didattica/Prog1/2018-19/Lezioni/png.py", line 620, in write

nrows = self.write_passes(outfile, rows)


File "/home/andrea/Documents/Uni/Didattica/Prog1/2018-19/Lezioni/png.py", line 769, in write_passes

extend(row)


File "/home/andrea/Documents/Uni/Didattica/Prog1/2018-19/Lezioni/png.py", line 766, in <lambda>

return lambda sl: f([int(x) for x in sl])


OverflowError: unsigned byte integer is greater than maximum


<image.Immagine at 0x7f6ed09aeeb8>


In [45]:


In [45]: b = add_bordo(trecime, 20, (255, 255, 255))


In [46]: im.visd(b)



In [47]: b = add_bordo(trecime, 20, (255, 0, 255))


In [48]: im.visd(b)



In [49]: def grey(img):

    ...: h, w = len(img), len(img[0])


In [50]: def grey(img):

    ...: h, w = len(img), len(img[0])

    ...: grigia = create(w, h)


In [51]: def grey(img):

    ...: h, w = len(img), len(img[0])

    ...: grigia = create(w, h)

    ...: for x in range(w):

    ...: for y in range(h):

    ...: media = sum(img[y][x])//3

    ...: grigia[y][x] = media, media, media


In [52]: def grey(img):

    ...: h, w = len(img), len(img[0])

    ...: grigia = create(w, h)

    ...: for x in range(w):

    ...: for y in range(h):

    ...: media = sum(img[y][x])//3

    ...: grigia[y][x] = media, media, media

    ...: return grigia


In [53]: g = grey(trecime)


In [54]: im.visd(g)



In [55]: def grey2(img):

    ...: return [ [

    ...: (sum(c)//3, sum(c)//3, sum(c)//3) for c in riga

    ...: ] for riga in img

    ...: ]


In [56]: g = grey2(trecime)


In [57]: im.visd(g)



In [58]: def inversa(img):

    ...: return [ [

    ...: (255-r, 255-g, 255-b) for r,g,b in riga

    ...: ] for riga in img

    ...: ]


In [59]: i = inversa(trecime)


In [60]: im.visd(i)



In [61]: def filtro(img, funz_filtro):

    ...: return [ [

    ...: funz_filtro(r,g,b) for r,g,b in riga

    ...: ] for riga in img

    ...: ]


In [62]: i = filtro( trecime, lambda r,g,b: (255-r, 255-g, 255-b))


In [63]: im.visd(i)



In [64]: g2 = filtro( trecime, lambda r,g,b: ((r+g+b)//3, (r+g+b)//3, (r+g+b)//3))


In [65]: im.visd(g2)



In [66]: def riflessa(img):

    ...: h = len(img)


In [67]: def riflessa(img):

    ...: h = len(img)

    ...: w = len(img[0])


In [68]: def riflessa(img):

    ...: h = len(img)

    ...: w = len(img[0])

    ...: res = create(h, w)


In [69]: def riflessa(img):

    ...: h = len(img)

    ...: w = len(img[0])

    ...: res = create(h, w)

    ...: for x in range(w):

    ...: for y in range(h):

    ...: res[x][y] = img[y][x]

    ...: return res


In [70]: r = riflessa(trecime)


In [71]: im.visd(r)



In [72]: