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 :

Conversion Postcript en image rapide (remplacer Image.save)


Sujet :

Python

  1. #1
    Expert confirmé Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Points : 4 005
    Points
    4 005
    Par défaut Conversion Postcript en image rapide (remplacer Image.save)
    Bonjour,

    Cette question fait suite à ce sujet. Et en particulier à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        def _garblinux(self):
            import subprocess
            import Image
            _image = subprocess.Popen(["import -silent -windows root -"], stdout=subprocess.PIPE, universal_newlines=True, shell=True)
            _fimg = cStringIO.StringIO()
            _source = cStringIO.StringIO(_image.stdout.read())
            # La conversion du postcript avec Image.save est trop longue
            Image.open(_source).save(_fimg, 'GIF')
            return base64.encodestring(_fimg.getvalue())
    Existe il un moyen rapide de convertir du postcript en image ?

    Merci d'avance
    Merci d'utiliser le forum pour les questions techniques.

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Salut,
    En général, je regarde d'abord si ghostscript le fait.
    Clt
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Expert confirmé Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Points : 4 005
    Points
    4 005
    Par défaut
    Bonjour wiztricks,

    Sans doute mais ghostscript travaille sur un fichier. Ici nous avons un objet cStringIO.StringIO qui correspond au stdout d'un subprocess.Popen.
    Le but est de ne pas travailler sur le disque.
    Dans le sujet précédent il y a le code (+/-) suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
        def _GarbLinux(self, name=None):
            if name:
                if os.path.basename(name) == name:
                    _fichier = os.path.join(os.environ['HOME'], name)
                else:
                    _fichier = name
            else:
                _fichier = self.fichier
            _commande = "import -silent -window root " + _fichier
            os.system(_commande)
            return _fichier
    Avec ceci il est tout à fais possible de faire un convert via un pipe avec subprocess (17.1.3.2. Replacing shell pipeline). Mais cela travaille sur des fichiers disques...

    Le but est de convertir le Postcript en mémoire pour gagner du temps.
    Maintenant s'il existe un moyen de faire un 'fichier' en mémoire (mmap ?) utilisable dans un subprocess...
    Mieux : envoyer mon cStringIO.StringIO en stdin (possible) et trouver l'outil de conversion qui me retourne le résultat sur le stdout du Popen (un rêve).

    Merci.
    Merci d'utiliser le forum pour les questions techniques.

  4. #4
    Expert confirmé Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Points : 4 005
    Points
    4 005
    Par défaut
    Ou écrire directement le fichier au format voulu et ne pas utiliser convert bien sur. Ce qui est fait dans le code de départ.
    Merci d'utiliser le forum pour les questions techniques.

  5. #5
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Salut,

    Sans doute mais ghostscript travaille sur un fichier. Ici nous avons un objet cStringIO.StringIO qui correspond au stdout d'un subprocess.Popen.
    Hmm plutôt que de passer par subprocess.stdout => StringIO => subprocess.stdin, pourquoi ne pas laisser le shell (bash) faire le pipe?
    - W
    PS: Quand c'est trop compliqué, il y a encore la ressource de passer par un ramdisk.
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  6. #6
    Expert confirmé Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Points : 4 005
    Points
    4 005
    Par défaut
    Bonsoir,

    Citation Envoyé par wiztricks Voir le message
    Salut,

    Hmm plutôt que de passer par subprocess.stdout => StringIO => subprocess.stdin, pourquoi ne pas laisser le shell (bash) faire le pipe?
    - W.
    Pour éviter la création d'un fichier sur le disque.
    La commande 'import -silent -windows root -' permet de récupérer via le stdout la copie d'écran. import en lui même gère un grand nombre de formats mais c'est dépendant de l'extension du fichier de sortie et comme - demande la sortie sur le stdout le format est celui par defaut : ps. Impossible de modifier cela (Selon mes tests).
    Citation Envoyé par wiztricks Voir le message
    PS: Quand c'est trop compliqué, il y a encore la ressource de passer par un ramdisk.
    C'est ce que je recherche en fait.

    Merci
    Merci d'utiliser le forum pour les questions techniques.

Discussions similaires

  1. [Débutant] Manipulation d'images : intégrer une image dans une image
    Par noscollections dans le forum VB.NET
    Réponses: 2
    Dernier message: 17/10/2014, 11h51
  2. Pb de conversion emf vers jpg de grandes images
    Par B-Technix dans le forum Delphi
    Réponses: 9
    Dernier message: 18/06/2007, 23h07
  3. generer une image rapidement ?
    Par Lady dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 01/06/2007, 16h03
  4. conversion .ps en .png (ou autres images)
    Par CaptainChoc dans le forum GUI
    Réponses: 4
    Dernier message: 15/09/2006, 03h26
  5. Comment afficher rapidement des images ?
    Par Michel_57 dans le forum Composants VCL
    Réponses: 5
    Dernier message: 16/01/2005, 04h07

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