Test Foro de elhacker.net SMF 2.1

Programación => Scripting => Mensaje iniciado por: Carloswaldo en 17 Septiembre 2010, 01:07 AM

Título: [Python] Error con PIL y py2exe
Publicado por: Carloswaldo en 17 Septiembre 2010, 01:07 AM
Hola, he venido porque ya no se a qué hacer a este pequeño script que tengo en python, es algo simple, solo hago abro una imagen gif, le hago un resize y lo guardo como un .tif haciendo uso de la librería PIL

Código (python) [Seleccionar]
from PIL import Image
im_orig = Image.open('input-black.gif')
big = im_orig.resize((116, 56), Image.NEAREST)
big.save("input-NEAREST.tif")
image = Image.open('input-NEAREST.tif')


El código funciona perfecto cuando lo ejecuto con python, pero ahora que quiero convertirlo a .exe con py2exe y lo ejecuto me da este error.

Traceback (most recent call last):
  File "reccap.py", line 4, in <module>
  File "PIL\Image.pyc", line 1423, in save
KeyError: '.tif'


El error es en la línea de big.save y no tengo idea de por qué sale. ¿Alguien me echa una ayuda?
Título: Re: [Python] Error con PIL y py2exe
Publicado por: bizco en 17 Septiembre 2010, 09:06 AM
from PIL import TiffImagePlugin  :P
Título: Re: [Python] Error con PIL y py2exe
Publicado por: Carloswaldo en 18 Septiembre 2010, 03:46 AM
Gracias man, ahora ya no me sale ese error, el script ejecutándolo normalmente sigue funcionando bien, pero de nuevo cuando lo hago exe con python me da otro error.

Traceback (most recent call last):
 File "reccap.py", line 19, in <module>
 File "pytesser.pyc", line 31, in image_to_string
 File "pytesser.pyc", line 21, in call_tesseract
 File "subprocess.pyc", line 623, in __init__
 File "subprocess.pyc", line 833, in _execute_child
WindowsError: [Error 2] El sistema no puede encontrar el archivo especificado


La línea 19 ahora es esta (que también está en el anterior):

Código (python) [Seleccionar]
image = Image.open('input-NEAREST.tif')
Título: Re: [Python] Error con PIL y py2exe
Publicado por: bizco en 18 Septiembre 2010, 06:20 AM
probando el codigo del primer post no me da problema alguno, pon el codigo nuevo.
Título: Re: [Python] Error con PIL y py2exe
Publicado por: Carloswaldo en 18 Septiembre 2010, 06:42 AM
Claro, el programa completo es este:

Código (python) [Seleccionar]
from pytesser import *
from PIL import TiffImagePlugin
from PIL import Image
import os
img = Image.open('captcha.png')
img = img.convert("RGBA")
pixdata = img.load()
# Por cada pixel que no sea negro lo convertimos en blanco
for y in xrange(img.size[1]):
   for x in xrange(img.size[0]):
       if pixdata[x, y] != (0, 0, 0, 255):
           pixdata[x, y] = (255, 255, 255, 255)
img.save("input-black.gif", "GIF")
# Hacer la imagen mas grander (requerido para OCR)
im_orig = Image.open('input-black.gif')
big = im_orig.resize((116, 56), Image.NEAREST)
ext = ".tif"
big.save("input-NEAREST" + ext)
image = Image.open('input-NEAREST.tif')
captcha = image_to_string(image).split()[0]
print captcha


Lo he copiado de por ahí adaptándolo un poco. xD
Estoy probando esta librería: http://code.google.com/p/pytesser/
Título: Re: [Python] Error con PIL y py2exe
Publicado por: bizco en 18 Septiembre 2010, 07:14 AM
ahora si :), este es el problema:

Citar
Dependencies:
============================================
pytesser.py   Main module for importing
util.py      Utility functions used by pytesser.py
errors.py   Interprets exceptions thrown by Tesseract
tesseract.exe   Executable called by pytesser.py
tessdata/   Resources used by tesseract.exe


si alguna dependencia fuese dinamica tendrias que especificarla explicitamente del mismo modo que con el plugintif, el exe y tessdata ponlo junto a tu ejecutable.

PD: te confirmo 100% ya que lo he bajado para ver que tal, y es por el tema del ejecutable.
Título: Re: [Python] Error con PIL y py2exe
Publicado por: Carloswaldo en 18 Septiembre 2010, 08:17 AM
PERFECTO!

Te agradezco todas las molestias que te has tomado. :)

Por cierto ¿Dónde viste las dependencias?
Título: Re: [Python] Error con PIL y py2exe
Publicado por: bizco en 18 Septiembre 2010, 08:19 AM
no hay de que :). en el readme, al final del todo aparecen.

http://code.google.com/p/pytesser/wiki/README
Título: Re: [Python] Error con PIL y py2exe
Publicado por: Carloswaldo en 18 Septiembre 2010, 08:37 AM
Nota mental: Leeré el readme xD Gracias de nuevo.