PIL Bild.open() funktioniert nicht für meine .png

Ich benutze PIL öffnen Bild für die Extraktion von einigen bits und schreiben Sie Sie auf Zeichenfolge. Es soll so sein, dass dieser code filter außer diejenigen, die (R<=1 && G<=1 && B<=1) und nahm das Letzte Stück von jeder Farbe. Die Sache ist, dass es nicht funktioniert.

from PIL import Image
def extract_bits(color, bitmask):
    bitmask_len = len(bin(bitmask)[2:])
    extracted_bits = bin(color & bitmask)[2:]
    extracted_bits = '0' * (bitmask_len - len(extracted_bits)) + extracted_bits

    return extracted_bits

if __name__ == '__main__':
    img = Image.open('IMG_0707png')
    pixels = list(img.getdata())

    bits = ''
    for i in range(0, len(pixels), 1):
        r = pixels[i][0]
        g = pixels[i][1]
        b = pixels[i][2]

        if not (r <= 1 and g <= 1 and b <= 1): continue

        bits += extract_bits(r, 0x1)
        bits += extract_bits(g, 0x1)
        bits += extract_bits(b, 0x1)

    bits += '0' * (8 - len(bits) % 8)

    text = ''
    for i in range(0, len(bits), 8):
        text += chr(int(bits[i:i+8], 2))
    print text

Schaute ich mich um dieses problem, und die Lösung gefunden, die funktioniert nicht in meinem Fall.
img = Image.open(open('IMG_0707.png', 'rb'))
In beiden Fällen bekomme ich

File "<stdin>, line 1, in <module>"
File "<string>" line11, im <module>
File "c:\python27\lib\site-packages\PIL\Image.py", line 1980, in open
raise IOError("cannot identify image file")
IOError: cannot identify image file

Auch habe ich versucht zu geben Sie den genauen Pfad nicht mit Glück.

img = Image.open(open("IMG_0707.png", 'rb'))
img = Image.open(open("c:\python27\IMG_0707.png", 'rb'))
img = Image.open(open("c:/python27/IMG_0707.png", 'rb'))

Und so weiter. Ich wäre für jede Hilfe dankbar.
Bild, im Versuch Sie zu öffnen

InformationsquelleAutor im_infamous | 2013-09-21

Schreibe einen Kommentar