Buenas,
Estoy intentando crear una aplicación para editar imágenes con Python.
Esto es lo que quiero hacer:
1.- Crear una imagen con un screenshot #ok
2.- Convertir la imagen a blanco y negro #ok
3.- Borrar las filas que sean enteras negras #ok
4.- Borrar las columnas que sean enteras negras
No entiendo la lógica del punto 3, y no soy capaz de editar la función que borra las filas para que borre las columnas.
Espero que podáis ayudarme
Un saludo,
Estoy intentando crear una aplicación para editar imágenes con Python.
Esto es lo que quiero hacer:
1.- Crear una imagen con un screenshot #ok
2.- Convertir la imagen a blanco y negro #ok
3.- Borrar las filas que sean enteras negras #ok
4.- Borrar las columnas que sean enteras negras
No entiendo la lógica del punto 3, y no soy capaz de editar la función que borra las filas para que borre las columnas.
Espero que podáis ayudarme
Un saludo,
Código (python) [Seleccionar]
import pyscreenshot as ImageGrab
from itertools import izip
from PIL import Image
import time
#Screenshot y guarda como .png
im1=ImageGrab.grab(bbox=(495,198,511,209))
im1.save("imagen.png","png")
#Convertir imagen a blanco y negro
col = Image.open("imagen.png")
gray = col.convert('L')
bw = gray.point(lambda x: 0 if x<128 else 255, '1')
bw.save("imagenbw.png")
#Borrar las filas que sean completamente negras
def find_rows_with_color(pixels, width, height, color):
rows_found=[]
for y in xrange(height):
for x in xrange(width):
if pixels[x, y] != color:
break
else:
rows_found.append(y)
return rows_found
rold_im = Image.open("imagenbw.png")
if old_im.mode != 'RGB':
old_im = old_im.convert('RGB')
pixels = old_im.load()
width, height = old_im.size[0], old_im.size[1]
rows_to_remove = find_rows_with_color(pixels, width, height, (0, 0, 0)) #Remove black rows
new_im = Image.new('RGB', (width, height - len(rows_to_remove)))
pixels_new = new_im.load()
rows_removed = 0
for y in xrange(old_im.size[1]):
if y not in rows_to_remove:
for x in xrange(new_im.size[0]):
pixels_new[x, y - rows_removed] = pixels[x, y]
else:
rows_removed += 1
new_im.save("imagennew.png")