我是计算机编码的新手。我们与Canopy合作做PYTHON,我们正在进行图像修改。我有一个'模块'对象没有属性'draw'错误,我不知道如何解决它。我导入了以下内容:
import PIL
import os.path
import PIL.ImageDraw
import PIL
from PIL import ImageFont
from PIL import Image
from PIL import ImageDraw
我试图运行的代码是:
def round_corners_of_all_images(directory=None):
""" Saves a modfied version of each image in directory.
Uses current directory if no directory is specified.
Places images in subdirectory 'modified', creating it if it does not exist.
New image files are of type PNG and have transparent rounded corners.
"""
if directory == None:
directory = os.getcwd() # Use working directory if unspecified
# Create a new directory 'modified'
new_directory = os.path.join(directory, 'modified')
try:
os.mkdir(new_directory)
except OSError:
pass # if the directory already exists, proceed
#load all the images
image_list, file_list = get_images(directory)
#go through the images and save modified versions
for n in range(len(image_list)):
# Parse the filename
filename, filetype = file_list[n].split('.')
# drawing the text on the picture
draw = ImageDraw.Draw(image_list[n])
font = ImageFont.truetype("Infinite_Stroke",size=24,index=0,encoding="unic")
draw.text((10, 25),(0,0,255),"SAMSUNG", font=font)
# Round the corners with radius = 30% of short side
new_image = round_corners(image_list[n],.30)
#save the altered image, suing PNG to retain transparency
new_image_filename = os.path.join(new_directory, filename + '.jpg')
new_image.save(new_image_filename)
答案 0 :(得分:1)
从文档中看,您正在寻找的方法是Draw(),而不是draw()
http://pillow.readthedocs.io/en/3.1.x/reference/ImageDraw.html
试试这个
draw = ImageDraw.Draw(image_list[n])
答案 1 :(得分:0)
老问题,但可能仍然相关的答案:这里的错误是在 ImageDraw 的双重导入中,以下列方式重写导入解决了我的问题:
$body = $htmlTemplate -replace '@@TABLE@@', (($result | ConvertTo-Html -Fragment) -join [Environment]::NewLine)
# if you want, you can save this to a file
$body | Set-Content -Path 'c:\serverstatus.html'
# send the email
$EmailParams = @{
SmtpServer = 'xyz.smtp.com'
Port = '25'
Subject = 'File Upload Status'
To = "xyz@xyz.com"
From = "no-xyz@xyz.com"
Body = $body
BodyAsHtml = $true
Attachments = $LogFile
}
Send-MailMessage @EmailParams