2010-10-25 6 views
-1

J'essaie de créer un négatif de cette image en noir et blanc. L'opposé du blanc (255) est le noir (0) et vice versa. Le contraire d'un pixel avec une valeur de 100 est 155. Je ne peux pas utiliser convert, invert, point, eval, lambda.Python (création d'un négatif de cette image en noir et blanc)

Voici mon code mais ça ne marche pas encore. Pourriez-vous s'il vous plaît laissez-moi savoir quelle partie je me trompe.

def bw_negative(filename): 
    """ 
    This function creates a black and white negative of a bitmap image 
    using the following parameters: 
     filename is the name of the bitmap image 
    """ 

    #Create the handle and then create a list of pixels. 
    image = Image.open(filename) 
    pixels = list(image.getdata()) 

    pixel[255] = 0 
    pixel[0] = 255 

    for i in range(255,0): 
     for j in range(0,255): 
      pixel[i] = j 
      print pixels[i] 


    image.putdata(pixels) 
    image.save ('new.bmp') 
+3

Silly, restrictions arbitraires? On dirait des devoirs pour moi. –

+0

Ce qu'il essaie de dire: Si la question est de devoirs, indiquez-le comme tel. La communauté Stackoverflow ne résoudra pas vos devoirs pour vous, mais nous vous fournirons des conseils qui vous guideront vers une * compréhension * et donc la solution correcte. –

+0

D'où vient le type 'Image'? Une bibliothèque ou une coutume? –

Répondre

1

Python est un langage interprété, qui a l'avantage que vous pouvez utiliser un interactive interpreter-session pour essayer des choses. Essayez d'ouvrir le fichier image dans une session interactive et regardez la liste que vous obtenez de list(image.getdata()). Une fois que vous comprenez ce que cette liste contient, vous pouvez penser à un moyen d'inverser l'image.