2016-12-04 1 views
0

J'utilise ExtendScript pour travailler sur JavaScript pour Adobe Illustrator 2015. Pourrais-je obtenir des valeurs RVB à partir d'une coordonnée dans le code ci-dessous?Obtenir la couleur de coordonnées RVB: Adobe Illustrator

// declares a document 
var doc = app.activeDocument; 
// sets x and y coordinates to get color from 
var xPosition = 70.0; 
var yPosition = 64.0; 

C'est ce qui a besoin de travail:

// gets rgb values 
double redValue = doc.getRGBColor(xPosition, yPosition).red; 
double greenValue = doc.getRGBColor(xPosition, yPosition).red; 
double blueValue = doc.getRGBColor(xPosition, yPosition).red; 

J'ai googlé un peu et trouvé this. Cela ne fonctionne pas, soit parce qu'il a été publié en 2009, soit parce qu'il devait être dans Photoshop.

Une solution au problème ou à la traduction de ce poste serait grandement appréciée.

Répondre

2

[EDIT: Mes excuses pour donner essentiellement une réponse AppleScript à votre question ExtendScript. Je regardais juste les questions AS et j'ai oublié que je suis allé à une section différente. Je peux seulement espérer que vous êtes sur un Mac. Sinon, je suppose que je vais juste manger mes downvotes et pleurer.]

Il existe une solution de contournement. L'avantage de cela (et une partie de la nature de contournement de celui-ci) est qu'il fonctionne dans toutes les applications. L'inconvénient est qu'il nécessite python (qui devrait être sur votre Mac de toute façon - assez facile à installer sinon), et deux morceaux de logiciels tiers (tous deux gratuits), "checkModifierKeys" et "cliclick". J'ai utilisé un script qui apparaît dans mon menu de script depuis des années. La partie python est décrite ici: http://thechrisgreen.blogspot.com/2013/04/python-script-for-getting-pixel-color.html Ce script peut être sauvegardé, rendu exécutable et appelé à l'aide de la commande AS do shell script. et le reste, pour sélectionner un point sur l'écran et attendre que la touche de contrôle soit enfoncée (c'est comme ça que ça fonctionne) est assez simple. La partie de checkModifierKeys de base (qui attend jusqu'à ce que la touche Ctrl est enfoncée) est:

set controlIsDown to false 
repeat until (controlIsDown) 
    set initialCheck to ((do shell script "/usr/local/bin/checkModifierKeys control")) 
    if initialCheck = "1" then set controlIsDown to true 
end repeat 

La partie cliclick (qui obtient les coordonnées) est:

set xyGrabbed to do shell script "/usr/local/bin/cliclick p" 

Il peut sembler un long chemin à allez-y, mais ça fonctionne très bien. Ma version convertit la valeur rgb en hexadécimal avec ce gestionnaire, ce qui est utile pour mes besoins:

to makeHex(theNumber) --was anInteger 
    --Converts an unsigned integer to a two-digit hexadecimal value 
    set theResult to "" 
    repeat with theIndex from 1 to 0 by -1 
     set theBase to (16^theIndex) as integer 
     if theNumber is greater than or equal to theBase then 
      set theMultiplier to ((theNumber - (theNumber mod theBase))/theBase) as integer 
      set theResult to theResult & item theMultiplier of ¬ 
       {1, 2, 3, 4, 5, 6, 7, 8, 9, "A", "B", "C", "D", "E", "F"} 
      set theNumber to (theNumber - theBase * theMultiplier) 
     else 
      set theResult to (theResult & "0") 
     end if 
    end repeat 
theResult 
end makeHex 
+0

Pas besoin d'excuses: d'autres peuvent avoir la même question et * fonctionnent * sur un Mac. – usr2564301

+0

Merci pour votre solution! J'adore mac, et je n'aurai jamais un autre type d'ordinateur :) – bearacuda13

+0

Eh bien, c'est un peu "plateformeiste", mais je vous pardonne :-) Je suis content que vous ayez trouvé cela utile! – CRGreen

1

Oui, cette solution ne fonctionne pas, car dans les éditeurs de vecteurs tels que Illustrator, la couleur est appliquée à l'élément vectoriel (chemin) dans son ensemble pour ne pas séparer les pixels. Même si vous travaillez avec l'image pixel dans illistrator il n'y a pas de fonctions de script pour obtenir la couleur du pixel.

+0

Y a-t-il des solutions de contournement? – bearacuda13

+1

La solution de contournement possible est un fichier vectoriel ouvert directement dans Photoshop. – emax