J'essaie d'écrire un document dans PostScript.
Jusqu'à présent, j'ai pu écrire de texte simple et travailler avec des lignes et des formes. P>
J'essaie maintenant d'ajouter quelques images au document. Après avoir cherché en ligne, je ne peux pas sembler trouver de manière claire de le faire. P>
Le snip en ci-dessous est un monde Hello World: P>
%!PS /Times 20 selectfont 20 800 moveto (Hello World!) show showpage
4 Réponses :
Vous pouvez télécharger Référence sur la langue PostScript, troisième édition à partir d'Adobe (c'est le "Bible Bible" pour PostScript). Chapitre 4.10 images em> serait un bon point de départ. P>
Utilisez un programme comme Convertir puis supprimer tout code supplémentaire qu'il a généré. p>
Le code généré par pnmtops i> peut être plus facile à comprendre. Voir NetPBM.SOURCEForge.net/doc/pnmtops.html
Pour les bitmaps droits, convertis en .xbm est assez pratique, mais Le Les bits dans chaque octet sont en arrière .
Il existe une méthode simple et PostScript prend en charge le format JPEG. Si vous utilisez Ghostscript, vous devrez peut-être utiliser l'option -Dnosafer pour ouvrir des fichiers. Voici un exemple:
Pourquoi ne pas en faire une procédure prise (nom_fichier, x, y, wid, ht)? Cela pourrait également prendre un paramètre supplémentaire pour spécifier quel coin devrait être à (x, y). Si vous faites une composition rapide et sale, le coin supérieur gauche est plus simple de travailler avec.
Il pourrait être placé dans une procédure, mais la majeure partie du code ci-dessus consiste simplement à mettre des données dans la pile dans l'ordre approprié pour la commande ColorImage. Le coin inférieur gauche n'est pas vraiment un choix qu'il est défini par PostScript. PostScript définit 0,0 comme le bas à gauche de la page et les méthodes natives PostScript sont donc également centrées sur le fond, si vous attrapez mon gist. Vous pouvez choisir de définir X, Y comme en haut à gauche, mais votre fonction devrait convertir en coordonnées en bas à gauche pour vous.
Oui, je ne me plains pas ou rien. Mais envisagez le niveau du questionneur ... en fait je prends tout cela de retour! Faire ce serait un exercice parfait. Et vous avez donné tout ce qui est nécessaire!
Est-ce une réponse tardive! Le problème avec Utilisez Python pour lire le fichier JPG en tant que binaire et en faire une chaîne, compatible avec puis au lieu de lire et de décoder le fichier image à partir du fichier PostScript, collez la chaîne de calcul ci-dessus dans le fichier PostScript et La touche ci-dessus remplace Si vous voulez autre chose que JPEG mais toujours RVB (c.-à-d .: Vous voulez quelque chose pour lequel PostScript n'a pas de décodeur), et vous pouvez Utilisez Python pour préparer votre fichier PostScript, vous pouvez utiliser PIL, comme celui-ci (il ignore l'octet de transparence, qui est une opération ON / OFF dans PostScript): P> -dnosafer code> m'a empêché d'utiliser les autres solutions, donc j'ai procédé aux éléments suivants:
/ Ascihexdecode code>: p>
''. Joindre (["% 02x"% ORD (C) pour C en ouvert (nom de fichier "). Lire ()]) Code> p>
Filtre CODE> IT, premier via
/ Ascihexdecode code> puis
/ dctdecode code>: p>
(myJpeg500x133.jpg) Fichier / filtre DCTDécode code> dans la réponse autrement très utile @ hath995. p>
import PIL.Image
i = PIL.Image.open("/tmp/from-template.png")
import itertools
''.join(["%02x" % g
for g in itertools.chain.from_iterable(
k[:3] for k in i.getdata())])
Il n'y a pas de manière directe pour PostScript o Lisez ces formats - mais voir @LHF Réponse ci-dessous. Si vous souhaitez ajouter directement l'image, vérifiez ma réponse à Stackoverflow.com/Questtions/4924819/...