Je suis nouveau sur Python et j'ai essayé de lancer le code suivant. J'ai reçu l'erreur suivante "IOError: cannot open resource"
. Est-ce dû au fait que certaines des caractéristiques de l'Image n'existent plus (par exemple, Coval.otf) ou est-ce potentiellement dû à des restrictions d'écriture/lecture? s'il vous plaît faites le moi savoir - merci beaucoup, W
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)
C'est parce que Coval.otf
ne peut pas être lu, probablement parce qu'il n'existe pas sur votre système, ceci est spécifié dans le ImageFont doc
. J'ai essayé de rechercher la police spécifique et n'ai trouvé aucun moyen de l'acquérir. Regardez @/NewYork167 link si vous devez utiliser la police Coval
.
Quoi qu'il en soit, pour vous épargner la peine d'installer des polices, vous pouvez simplement changer l'appel en une police existant sur votre système, utilisez celle spécifiée dans exemple des documents:
font = ImageFont.truetype("arial.ttf", 15)
On dirait que vous pouvez installer Coval à partir d'ici pour vous éviter d'avoir à changer de police dans le code futur https://fontlibrary.org/en/font/bretan
Pour moi après avoir exécuté ce qui suit:
conda install -c conda-forge graphviz
conda install -c conda-forge python-graphviz
puis en reliant la police sur mac par:
img = Image.open("tree1.png")
draw = ImageDraw.Draw(img)
font = ImageFont.truetype('/Library/Fonts/Arial.ttf', 15)
Cela a fonctionné parfaitement.