2017-02-07 7 views
0

Je suis novice en codage informatique. Nous travaillons avec Canopy pour faire PYTHON et nous faisons des modifications d'image. J'ai un objet 'module' n'a pas d'erreur 'draw' et je ne sais pas comment le réparer. J'ai importé les éléments suivants:Qu'est-ce que l'objet 'module' n'a pas d'attribut 'draw'? Comment je le répare?

import PIL 
import os.path 
import PIL.ImageDraw    
import PIL 
from PIL import ImageFont 
from PIL import Image 
from PIL import ImageDraw 

Et le code que je suis en train de courir est:

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)  
+2

Je crois que vous avez juste une mauvaise capitalisation: 'draw = ImageDraw.draw (image_list [n])' -> 'draw = ImageDraw.Draw (image_list [n])' –

+0

J'ai essayé et je reçois toujours le même message . – evaaaannnnnnnn

+2

Ne pas _describe_ votre erreur - copier et coller le retraçage complet. – DSM

Répondre

1

De la documentation, il ressemble à la méthode que vous cherchez est draw(), pas tirer ()

http://pillow.readthedocs.io/en/3.1.x/reference/ImageDraw.html

Essayez cette

draw = ImageDraw.Draw(image_list[n]) 
+0

J'ai essayé et je reçois toujours le même message. – evaaaannnnnnnn

+0

Pouvez-vous modifier votre message pour afficher le nouveau code? Je trouve très étrange que vous receviez toujours le même message d'erreur. –

+0

J'ai modifié ma question pour afficher mon nouveau code. – evaaaannnnnnnn