IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Optimisation Taile Image


Sujet :

Python

  1. #1
    Membre �clair�
    Profil pro
    Inscrit en
    F�vrier 2010
    Messages
    573
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2010
    Messages : 573
    Par d�faut Optimisation Taile Image
    Bonjour,

    J'ai des fichiers avec les propri�t�s suivantes :
    - Format : Png
    - Largeur : 105 mm / 1240 px
    - Hauteur : 175 mm / 2066 px
    - Resolution : 300x300 dpi
    - Espace Colorim�trique : RGB
    - Taille : 5,5 Mo

    Ma question est de savoir si vous connaissez un moyen pour r�duire la taille de cette image sans perdre (trop) en qualit�, le but �tant qu'elle puisse �tre imprimer avec une bonne r�solution ?

    Merci d'avance pour votre aide.

    Thais

  2. #2
    Membre Expert
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2003
    Messages
    1 605
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : F�vrier 2003
    Messages : 1 605
    Par d�faut
    Bonjour,

    allez voir cette page web, vous y trouverez probablement une solution : How to reduce the image file size using PIL.

  3. #3
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    F�vrier 2006
    Messages
    12 850
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels
    Secteur : A�ronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 12 850
    Billets dans le blog
    1
    Par d�faut
    Bonjour
    Citation Envoy� par thais781 Voir le message
    le but �tant qu'elle puisse �tre imprim�e avec une bonne r�solution ?
    Pourquoi ne pas la r�duire juste lors de l'impression?
    Mon Tutoriel sur la programmation �Python�
    Mon Tutoriel sur la programmation �Shell�
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les diff�rentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  4. #4
    Membre �clair�
    Profil pro
    Inscrit en
    F�vrier 2010
    Messages
    573
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2010
    Messages : 573
    Par d�faut
    @Arioch : Merci, je vais regarder

    @Svear : Le but de l'op�ration est :
    - le stockage
    - ces images sont int�gr�es dans un doc et ca me fais un doc hyper lourd (quasiment 50 Mo) donc ca plante et c'est toujours gal�re de manipuler des fichiers aussi gros

  5. #5
    Expert �minent
    Homme Profil pro
    Architecte technique retrait�
    Inscrit en
    Juin 2008
    Messages
    21 772
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activit� : Architecte technique retrait�
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 772
    Par d�faut
    Citation Envoy� par thais781 Voir le message
    Ma question est de savoir si vous connaissez un moyen pour r�duire la taille de cette image sans perdre (trop) en qualit�, le but �tant qu'elle puisse �tre imprimer avec une bonne r�solution ?
    Il y a certainement des choses � faire c�t� format de l'image mais ici c'est un forum de programmation Python pas de traitement d'image. (m�me si, in fine, solution il y a, peut �tre qu'il faudra la coder avec Python et la biblioth�que smooltruc... mais on n'en est pas l�).

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    721
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 721
    Par d�faut
    A mon avis, votre marge d'action est limit�e. La r�solution n'est certainement pas trop �lev�e d�s lors que l'on veut imprimer, on voit habituellement des fichiers � 600 dpi et plus circuler sur les bancs d'impression.
    Et votre imprimante est probablement capable de plus que 300 dpi... Quant aux dimensions, j'imagine qu'elles correspondent plus au moins � la taille r�elle sur papier ou en tout cas ne sont pas sup�rieures � la taille de la feuille, donc pas vraiment d'int�r�t � la redimensionner.
    Le PNG �tant un format lossless, je vous conseille alors de convertir les images en JPEG, avec un certain coefficient de perte que vous pouvez param�trer, mais qui ne sera pas perceptible � l'impression. Si ce sont des photos que vous voulez imprimer, cette solution me semble avoir du sens. Pour des cartoons peut-�tre moins mais vous pouvez essayer.

  7. #7
    Membre Expert
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 573
    D�tails du profil
    Informations personnelles :
    �ge : 46
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 573
    Par d�faut
    Dans le doc (word), tu peux faire un clic droit sur une image puis choisir Image et sur la fen�tre il y a un bouton "compresser" et tu peux choisir un type de compression par d�faut pour l'ensemble des images du document, sans toucher aux images d'origines

  8. #8
    Expert confirm�
    Avatar de tyrtamos
    Homme Profil pro
    Retrait�
    Inscrit en
    D�cembre 2007
    Messages
    4 486
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : Retrait�

    Informations forums :
    Inscription : D�cembre 2007
    Messages : 4 486
    Billets dans le blog
    6
    Par d�faut
    Bonjour

    Avec Python, un module externe comme pillow (fork de PIL) est parfaitement capable de changer la dimension d'une image:
    https://pypi.org/project/Pillow/

    Voil� un petit code qui fait �a. Il s'agit de changer la dimension de la photo sans changer son ratio (hauteur x largeur):

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    from PIL import Image, ImageEnhance
     
    def redimphoto(ficsrce, ficdest="", maxh=1920, maxv=1080):
        """Redimensionne l'image ficsrce pour ne pas dépasser maxh pixels
           horizontaux ni maxv pixels verticaux, sans changer le ratio h/v
           Enregistre le résultat dans ficdest (si "" => dans ficsrce)
           Les fichiers sont donnés avec leurs chemins.
        """
        img = Image.open(ficsrce)
        dim_h, dim_v = img.size
        ratio = dim_h/dim_v
     
        taille_h = maxh
        taille_v = int(taille_h/ratio)
        if taille_v>maxv:
            taille_v = maxv
            taille_h = int(ratio*taille_v)
     
        img = img.resize((taille_h, taille_v), Image.ANTIALIAS)
     
        ficdest = ficsrce if ficdest=="" else ficdest
        img.save(ficdest)
    Exemple d'utilisation:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    ficsrce = "DSC_0123.jpg"
    ficdest = "DSC_0123_redim.jpg"
     
    redimphoto(ficsrce, ficdest, 1920, 1080)
    Il faut aussi prendre de bonnes d�cisions concernant la d�finition vis�e pour la photo en fonction de sa destination (�cran ou impression papier). A la sortie d'un appareil photo num�rique moderne, une d�finition de 4000x6000 pixels est courante. Pour une r�duction maxi du poids du fichier, une hauteur photo de 1080 pixels (=hauteur du full HD) est assez polyvalente: c'est suffisant pour l'affichage �cran, tout en permettant encore l'impression papier, puisqu'� 200dpi, la photo fait encore 140 mm de hauteur. Mais, bien s�r, on peut �tre plus ambitieux, avec la cons�quence d'une augmentation du poids du fichier, mais dans ce cas, il faut g�rer 2 versions de la photo: une version �cran (72dpi) et une version papier (300dpi).

    A noter qu'on peut faire plein d'autres choses int�ressantes avec Pillow. Par exemple, augmenter la nettet� (accentuation), sans exag�rer puisque �a finit par se voir:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    def plusnetphoto(ficsrce, ficdest="", facteur=2.0):
        """Accentue la netteté de la photo
           facteur=1.0 => image sans changement
           facteur>1.0 => accentuation (2.0 par défaut)
          (si ficdest=="" => dans ficsrce)
        """
        img = Image.open(ficsrce)
        enhanser = ImageEnhance.Sharpness(img)
        img2 = enhanser.enhance(facteur)
     
        ficdest = ficsrce if ficdest=="" else ficdest
        img2.save(ficdest)
    Ou encore supprimer l'exif, ce qui peut �tre int�ressant pour les publications publiques:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    def supprimexif(ficsrce, ficdest=""):
        """Supprime l'exif du fichier jpg ficsrce et l'enregistre
           sous le nom ficdest (si ficdest=="" => dans ficsrce)
        """
        img = Image.open(ficsrce)
     
        data = list(img.getdata())
        image_sans_exif = Image.new(img.mode, img.size)
        image_sans_exif.putdata(data)
     
        ficdest = ficsrce if ficdest=="" else ficdest
        image_sans_exif.save(ficdest)
    Bons traitements!

Discussions similaires

  1. Optimiser les images
    Par itmak dans le forum Langage
    R�ponses: 3
    Dernier message: 01/03/2009, 15h39
  2. Optimisation r�cup�ration images HTTP
    Par shadeoner dans le forum Langage
    R�ponses: 3
    Dernier message: 25/11/2007, 12h03
  3. [GD] Optimiser les images � partir de PHP
    Par grinder59 dans le forum Biblioth�ques et frameworks
    R�ponses: 2
    Dernier message: 03/05/2007, 17h27
  4. Optimiser les images JPEG sur serveur
    Par camboui dans le forum Imagerie
    R�ponses: 7
    Dernier message: 31/05/2006, 10h08
  5. optimisation redimensionnement image
    Par enguerran dans le forum Graphisme
    R�ponses: 12
    Dernier message: 12/05/2006, 03h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo