2015-11-05 3 views
6

Ich bin neu in Python und habe versucht, den folgenden Code auszuführen. Ich habe den folgenden Fehler "IOError: cannot open resource" erhalten. Liegt dies an der Tatsache, dass einige der Bildeigenschaften nicht mehr existieren (z. B. Coval.otf), oder liegt es möglicherweise an Schreib-/Leseeinschränkungen? lasst es mich wissen - vielen Dank, WImageFont IO-Fehler: Ressource kann nicht geöffnet werden

import numpy as np 
from PIL import Image, ImageDraw, ImageFont 
from skimage import transform as tf 

def create_captcha(text, shear=0, size=(100,24)): 
    im = Image.new("L", size, "black") 
    draw = ImageDraw.Draw(im) 
    font = ImageFont.truetype(r"Coval.otf", 22) 
    draw.text((2, 2), text, fill=1, font=font) 
    image = np.array(im) 
    affine_tf = tf.AffineTransform(shear=shear) 
    image = tf.warp(image, affine_tf) 
    return image/image.max() 

%matplotlib inline 
from matplotlib import pyplot as plt 
image = create_captcha("GENE", shear=0.5) 
+0

Können Sie den Fehler-Stack senden? –

+0

Ich habe eine generiert, die übereinstimmen könnte: http://pastebin.com/C92Re7iQ. Sieht so aus, als ob Coval.otf nicht gefunden wird? Auch gefunden diese Ressource, die etwas mehr Licht abwerfen kann: http://tiny.cc/1voo5x. Sieht so aus, als müsste es installiert werden. Dieses Buch enthält einen Link zum Herunterladen. – Newyork167

Antwort

7

Es ist, weil Coval.otf nicht gelesen werden kann, wahrscheinlich, weil es nicht auf Ihrem System vorhanden ist, wird dies in den ImageFont doc angegeben. Ich habe versucht, nach der spezifischen Schriftart zu suchen und fand keine Möglichkeit, sie zu erwerben . Betrachten Sie @ NewYork167 link, wenn Sie müssen verwenden Sie die Coval Schriftart.

So oder so, sich die Mühe der Installation von Schriften zu speichern, könnten Sie einfach den Anruf an eine Schriftart ändern, die auf Ihrem System vorhanden ist, verwenden Sie die angegebene eine in der example der docs:

font = ImageFont.truetype("arial.ttf", 15) 
+8

Für Mac, was für mich funktioniert, ist '' myfont = ImageFont.truype ('/ Library/Fonts/Arial.ttf', 15) ''. In meinem Fall muss der Pfad für die Schriftartdatei angegeben werden. – wenlibin02