Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > fr.comp.lang.python > #3221

Re: manipulation d'image

From Pierre Maurette <maurette.pierre@free.fr>
Newsgroups fr.comp.lang.python
Subject Re: manipulation d'image
Date 2019-08-15 07:33 +0200
Organization A noiseless patient Spider
Message-ID <mn.79c57e38782a91f7.79899@free.fr> (permalink)
References <slrnql8asb.1ca.lulu042@Minty.Rock-n-Roll.org> <mn.74d37e38ae0c412e.79899@free.fr> <slrnql8oj8.h4p.lulu042@Minty.Rock-n-Roll.org> <slrnql8qac.j11.lulu042@Minty.Rock-n-Roll.org> <slrnql8s1q.l38.lulu042@Minty.Rock-n-Roll.org>

Show all headers | View raw


Lulu :

[...]

Quelques indications qui devraient vous permettre de répondre vous-même 
à vos questions.
Pour la doc, vous devriez partir de la doc officielle:
https://pillow.readthedocs.io/en/latest/

Vous voyez que Pillow est la distribution actuelle de l'historique 
bibliothèque PIL (Pillow est un nom "commercial", c'est bien sous le 
nom de PIL qu'elle sera importée, Pillow n'existe pas dans le code).

Dans cette bibliothèque, une foule de modules, dont un nous intéresse 
particulièrement (et pour un temps exclusivement): Image :
https://pillow.readthedocs.io/en/latest/reference/Image.html

Dans ce module, des fonctions et une classe (un objet): Image. Dans la 
même page:
https://pillow.readthedocs.io/en/latest/reference/Image.html#the-image-class

C'est peut être confusant, mais en définitive logique.
Un module: PIL.Image
Une classe: PIL.Image.Image

Parmi les fonctions du module (PIL.Image): open, new, etc.
Parmi les fonctions (méthodes) de la classe (PIL.Image.Image): convert, 
putpixel, getpixel, etc.

Donc, si je fais juste:
from PIL import Image
je n'ai importé que le module PIL.Image, en faisant simplement 
l'économie d'avoir à saisir PIL.Image au profit de Image. La classe 
PIL.Image.Image deviendra Image.Image, c'est tout.

Je vais donc avoir:
theimage1 = Image.open(blah)
theimage2 = Image.new(blahblah)

theimage1.putpixel(blah)
theimage2.show()
Mais je peux également faire:
Image.Image.putpixel(theimage1, blah)
Image.Image.show(theimage2)

Cas particulier:
Image._show(theimage2)
fonctionne. C'est un peu un hasard (ne fonctionne pas pour _convert, 
qui n'existe pas), même si la pratique est habituelle. _show(unobjet) 
est une fonction utile au module PIL.Image, l'underscore indique 
qu'elle est vaguement "à usage interne" (peut-être héritée par 
PIL.Image.Image, peu importe en fait), elle ne sera pas importée avec 
*, ne sera pas documentée, etc. Mais reste parfaitement accessible.

Un code qui utilise des écritures exotiques (les "mais je peux 
également...") masque un problème, et doit être corrigé.

Pourquoi (par exemple)
from PIL.Image import *
est *réellement* bad ?

PIL.Image.open() devient open(). Hors open() est une fonction native 
largement utilisée, elle sera masquée. Il ne sera pas rare d'avoir à 
l'utiliser dans un code incluant PIL.Image.open(). On peut bien sûr 
faire
import builtins puis builtins.open(), il est clair que c'est débile, ça 
casse les habitudes, les templates, le copier-coller de code, ça fait 
chier le lecteur du code, et sans doute bien d'autres choses.

-- 
Pierre Maurette

Back to fr.comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

manipulation d'image Lulu <lulu042@fry.fr.invalid> - 2019-08-14 17:40 +0200
  Re: manipulation d'image Pierre Maurette <maurette.pierre@free.fr> - 2019-08-14 20:35 +0200
    Re: manipulation d'image Lulu <lulu042@fry.fr.invalid> - 2019-08-14 21:35 +0200
      Re: manipulation d'image Lulu <lulu042@fry.fr.invalid> - 2019-08-14 22:04 +0200
        Re: manipulation d'image Lulu <lulu042@fry.fr.invalid> - 2019-08-14 22:34 +0200
          Re: manipulation d'image Pierre Maurette <maurette.pierre@free.fr> - 2019-08-15 07:33 +0200
            Re: manipulation d'image Lulu <lulu042@fry.fr.invalid> - 2019-08-16 22:38 +0200
              Re: manipulation d'image Pierre Maurette <maurette.pierre@free.fr> - 2019-08-17 17:37 +0200
                Re: manipulation d'image Lulu <lulu042@fry.fr.invalid> - 2019-08-17 19:55 +0200

csiph-web