View Full Version : Photoshop javaScripting pixel loop
Nicool 06-02-2004, 06:11 PM Hye,
I would know what's teh syntax to get each pixel RGB color from an image in a loop. In theory I want :
for( x=0; x > imageWidth; x++) {
for( y=0; y> imageHeight; y++) {
getColorOfThisPixel;
}
}
For each pixel of each line you know
Need your help, even files, links... Thanks
| |
berniebernie
06-02-2004, 07:01 PM
There is no method for colorpicking - i've been searching since december 2003 and the only solution is to crop the 1x1 area and use the histogram.
>>> click here for the adobe scripting link (http://www.adobeforums.com/cgi-bin/webx?13@184.bGhackRPCZH.969574@.1de81375/1)
cheers,
mlk
Nicool
06-02-2004, 09:55 PM
mlkdesign : thanks for your quick reply! I am happy someone has already studied before (since december 2003 loOol)... Yeah so if the only solution is the one you shared me, so I will not study photoshop scripting! Don't want to code crapy lines :)
I have the impression your are good at this side of CGing... Have you tested Gimp scripting yet ?
:beer:
berniebernie
06-03-2004, 03:28 PM
Nan parceque j'ai le bac a bosser et j'ai pas linux... Mais des l'année prochaine jvai essayer de bosser sur des programmes stand-alone pour editer les images pixel par pixel (c long mais c ce que je veux).. Mais le scripting c nickel quand on doit bouger vachement des calques ou faire des images dynamiques par exemple (genre une base de donnée avec des noms et des infos, a regrouper avec des photos).. Mais vu que c aussi possible de scripter en VB et AS (apple) tu peux aussi faire interagir photoshop avec d'autres proggies... mais la faut encore que j'apprene le vb :rolleyes:
-------------------------------------------------------------------
*French Jibberish* ...scripting is really useful when it comes to moving layers, doing things that can be automated (but far more than actions: using if..then or more complicated loops).. since scripting can also be done in VB and AS, your computer can be a real imagery monster !
As for the eyedropper, let's hope Adobe implements it soon =)...
Nicool
06-03-2004, 05:57 PM
Ah ;)
Suivant mon experience, je te dirais de ne pas te casser les couilles avec le photoshop scripting tel qu'il est aujourd'hui. Tourne-toi vers Linux (l'OS qu'on retrouvera bientôt dans tous les studios) et GIMP (pour l'amour des projets géniaux par des gars géniaux). De ce que je sais de GIMP, il y a trois languages aux styles différents utilisables (Notamment le Python, C-like que tu retrouvera dans d'autres contexte). J'ai l'impression qu'on a plus d'emprise sur l'image avec le GimpScripting.
Oui comme toi, l'interêt de ces language de script image, était pour moi de coder mes filtres! Et le scripting permet par définition d'éviter tous les emmerdes de programmation "Ã_ la dure". Mais en survolant les docs sur le photoshop scripting , j'ai observé qu'il ne permetait que d'appeller quelques fonction de photoshop user-side (comme le font les actions, tu sais, quand on enregistre le déroulement des opérations...). Ok, queques plus avec les variables et conditions, mais aucun "handler" (aucune matière Ã_ faire un script qui réfléchis et non un step-by-step (comme les actions)).
A propos de la création de scripts dynamiques.. tu l'as déjÃ_ fais. Parce que j'ai pas l'impression que le javascript a un module de FileStream (fopen, fread, ... ). Comment consultes-tu un document?
Alors faudrait-il se tourner vers la programmation?
Je connais bien le MEL, PHP et l'ActionScripting. Je me suis dis, pourquoi pas se chercher un petit compiler et prendre le C calmement? J'en conclut, c'est plus drôle les scripts! Je connais pas ton niveau, mais déjÃ_ tout les data types sont super chiants Que des comportements bizarres, des abérations... j'ai appris en parlant avec un programmeur d'expérience, qu'il y a plein de choses qui ne marchent qu'en théorie, mais en pratique, le GNU C (la référence pour que toutes sources C soient multiplatformes, avant la compilation) est pleins de piège et de rides! Le C date, et le jeuno de PHP le dépasse même si c'est un scripting language!
Bon beaucoup de travail en perspective où je n'ai pas était plus loin. Parcontre, une fois les bases comprises et un petit wrokflow qui met en confiance, il y a une lueure d'espoir : les librairies image. parce que mon gars, laisse tomber! Si tu arrive déjÃ_ Ã_ écrire/lire une bitmap (un format ASCII sans compression. Le plus simple avant le GIF) bravo. Heureusement les librairies permettent tout simplement en appelant ses fonctions de travailler sur les images quand elles sont compilées avec. Alors, tu retrouve un peu le plaisir du scripting :) Je connais deux librairie qui me semble valables : Imagic (avec déjÃ_ quelques filtres en macro) et GD (qui est plus connue car compilée aussi pour PHP).
Je connais les fonctions et le style GD pour avoir créé bolgallery ( http://bolgallery.free.fr ). Malheureusement, la lecture pixel par pixel sur laquelle reposés tous mes espoir ne marche pas sur mon server pour des raisons inconnues (j'ai contacté tout le monde, tout essayé). J'avais codé en quelques lignes un code pour faire un filtre style BD d'Hugo Pratt (le seuil ou threshold de photoshop), mais je peut même pas l'utilisé, même si on m'a dis qu'il était bon. Alors je me suis dis, casse la Etienne (lol), bascule le code en C et compile-le avec GD.dll Mais non, ras le bol!
VoilÃ_ où s'est arrêtée ma quête. Continue lÃ_ si tu trouve la force que tu aura puissée dans ma modeste dépouille d'ex-coder, j'ai arrêté, même si j'ai parfois des pulsions ;)
Réponds !
(pour ton Bac, bonne chance, je l'ai eu l'année dernière en leur faisant un gros **** ! Même si les Maths de BacS me sont biens utiles pour quelques scripts Maya)
berniebernie
06-03-2004, 06:22 PM
Etant beaucoup plus coté dessin que prog je touche po trop aux OOS type C++ ou Java meme si jconnais bien l'ActionScript...
J'connais pas php non plus pour l'avoir simplement jamais essayé de l'utiliser - mais je sais que free c la grosse merde pour le php alors essaye tes scripts sur multimania avant =)
Le javascript est tout con pour photoshop - c'est un language de scripting et pas orienté objet... mais jcomprend pas ce que tu veux faire avec fopen ou fread - c quoi ? pour ouvrir un document texte ou un document psd (jcrois les deux sont commentés dans les PSD qui viennent avec le plugin scripting) mais sinon jpeux poster du code ici...
Et pour le bac j'suis en section internationale; c'est une serie S mais avec la litérature qui a un plus gros coef que les sciences, donc ca ira =)...
-----------------------------------------------------------------------------
I just said that french server free sucks at handling php and another free host for french people is multimania.com even though it has ads - and that if people want I'll post javascript code for opening text files and using it in PS...
Nicool
06-03-2004, 07:09 PM
Escuse moi, mais free est (et c'est ce que confirme toute la communauté de coders PHP) le meilleur hebergeur gratuit français (multimania compte parmis les plus merdiques !)
Escuse moi 2, le javascript est un language orienté objet! quand on dit par exemple : object.rotations.x = 90; c'est orienté objet. Et come tu dis, tu débute en prog, mais fopen, fred, fclose, sont les commandes de bases Ã_ qui on doit l'ordinateur d'aujourd'hui. Elle pour lire/écrire les fichiers... je t'en dis pas plus, car il y a beaucoup Ã_ dire! Et bien sûr, comme tu ne connais que je javascript et l'actionScript, tu n'y a pas était confronté. Si en actionScript, la fonction loadVariable est un combiené de fopen, fread, fclose pour prendre des variables écrites dans un autre fichier que le swf (parfois très pratique, par exemple quand tu fais un site en flash pour un client qui veut changer lui même (avec bloc-note) quelques texte du contenu du site)
Bonne chance pour ton bac! J'aiemrai voir de tes travaux, tu disais être fort en dessin/graphisme ! Si j'arrête le coding, c'est que je préfère me focaliser sur l'animation et le modeling, je fais du graphisme moi aussi :) Tu viens d'où?
berniebernie
06-03-2004, 08:18 PM
<- grenoble..
Javascript est pour moi un language de script, car il est juste tout bon a ca, le vrai language OO est alors Java...
A propos de free je deteste le fait quon ne puisse utiliser la fonction mail, c tout, et c pour ca que j'essaye d'utiliser multimania...
Pour ce qui est du graphisme, faudra attendre un peu que jfinisse mon portfolio (ca fait quoi - 2 ans que c en construction :rolleyes: ) mais sinon je suis assez actif sur www.kirupaforum.com avec comme pseu mlkDesign...
pour ce qui est d'ouvrir un txt avec PS scripting voir dessous
-------------------------------------------------------------------------------
sample code for opening up a text file (as a data source) and using it in PS via scripting... There's a glitch I can't figure out: the readln() function reads one line whenever it is called and goes to the next - so that if you want to go to line 90 you have to do 89 blank loops including readln()... if anyone sorts it out; thank you !
JS for PC under PS7
var textVar = new File("/C/path/file.txt");
textVar.open ('r'); //r indicates 'read' mode, use 'w' for write I think
var lineContent = textVar.readln()
Now let's you've created a doc; the following will creat a text layer and put content from the previous textfile in it..
var textLayer = activeDocument.artLayers.add();
textLayer.kind = LayerKind.TEXT;
textLayer.name = "The Text Layer";
textLayer.content = lineContent; //previous script
textLayer.position = new Array(50,40)
I'll be writing a tutorial about scripting for Kirupa.com by the end of june - check all of the example script to see what you can play with =) !
Nicool
06-03-2004, 11:50 PM
Oh right, their are handlers for file streaming in javascript :) Ok that is right like f method.
And so you see Javascript is right an object oriented language : you typed layerName.something
:beer:
Nicool
06-04-2004, 11:11 PM
And I forgot to say... php mail() function is now enabled on free.fr accounts :)
berniebernie
06-05-2004, 11:16 AM
Bon bah jvais me mettre au php c'tété alors - ca va etre enorme avec flash...
Nicool
06-05-2004, 11:23 AM
I would be very galde to help you! Feel free to contact me. I have good knowledge now, and I have the impression we have the same willings, the same approach of the things, the same objectives !
ok?
:beer:
berniebernie
06-07-2004, 09:29 PM
Okay pas de probleme - mon gros boulot ca va etre entre Mysql, php et flash pour faire des sites personnalisable - jte recontacterai if needs be ! merci beaucoup...
CGTalk Moderation
01-18-2006, 09:00 AM
This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.
vBulletin v3.0.5, Copyright ©2000-2009, Jelsoft Enterprises Ltd.