2010-11-23 4 views
2

J'essaie de créer un dictionnaire de fonctions Postscript de type 0. L'entrée est une dimension unique et la sortie est 3 dimensions. Entrée 0 Sortie [0 0 0] Entrée 1 Sortie [1 1 1] Je rencontre des difficultés pour écrire le DataSource pour ce dictionnaire de fonctions. Le manuel PLRM indique que DataSource doit être une chaîne ou de simples données binaires. Quelqu'un peut-il m'aider à mapper ces valeurs au format attendu par DataSource?Création du type de dictionnaire de fonction Postscript 0

/FunctionType 0 /Domaine [0 1] /plage [0 1 0 1 0 1] /commande 1 /BitsPerSample 8 /Taille [2] /DataSource ????

Merci.

Répondre

2

Selon le PLRM,/DataSource est une chaîne ou un fichier. Supposons que vos valeurs d'exemple sont 0x00 et 0xFF.

Pour une chaîne, utilisez une chaîne hexagonale comme ceci:

/DataSource <00FF> 

La méthode de fichier est plus complexe et serait inefficace pour deux octets de données d'échantillon. Je ne vais pas le montrer ici sauf si vous avez vraiment besoin de lire les données d'un fichier.

+0

Je vois. J'ai du mal à utiliser ce dictionnaire pour l'ombrage axial. Je veux faire varier l'ombrage de la couleur blanche à la couleur noire à travers la diagonale d'un carré. Pouvez-vous éditer le dictionnaire des fonctions dans la question originale pour illustrer comment cela peut être fait? – user517837

2

OK, en fonction de votre commentaire, voici comment je l'ai fait:

<< % Make gradient pattern dictionary 
    /PatternType 2 
    /Shading 
    << 
    /ShadingType 2 
    /ColorSpace /DeviceRGB 
    /Coords [ 0 0 72 72 ] % Set coord array (gradient starting point to ending point) 
    /Function 
    << 
     /FunctionType 2 
     /Domain [ 0 1 ] 
     /C0 [ 1 1 1 ] % Set color 1 (white in RGB space) 
     /C1 [ 0 0 0 ] % Set color 2 (black in RGB space) 
     /N 1 
    >> 
    >> 
>> 
matrix makepattern 

Ceci est pour un carré exemple à 0,0 0,72 72,72 72,0.

Questions connexes