Som Plus-medlem får du: Tillgång till våra Plus-artiklar | Egen blogg och Portfolio | Fri uppladdning av dina bilder | Rabatt på kameraförsäkring och fotoresor | 20% rabatt på Leofoto-stativ och tillbehör | Köp till Sveriges mest lästa fototidning Fotosidan Magasin till extra bra pris.

Plusmedlemskap kostar 379 kr per år

Annons

Skripta PS med C#

Produkter
(logga in för att koppla)

müsli

Avslutat medlemskap
Vet inte om det intresserar någon:

Testade exemplet från sid 37 i detta dokumentet om skriptning av PS.
(se även http://partners.adobe.com/public/developer/photoshop/sdk/index_scripting.html )
Att skripta i C# kan ju vara ett alternativ till JS om man föredrar att utveckla i .NET-miljön.

Exempelkoden (översatt från exemplets VB-kod till C#):
Källkod:
// get a reference to the Photoshop application
Photoshop.Application appRef = new Photoshop.ApplicationClass();

// create a new document (save current unit type while doing it)
Photoshop.PsUnits originalRulerUnits = appRef.Preferences.RulerUnits;
appRef.Preferences.RulerUnits = Photoshop.PsUnits.psPixels;
Photoshop.Document docRef = appRef.Documents.Add(400, 400,
      null, null, null, null, null);
appRef.Preferences.RulerUnits = originalRulerUnits;

// create a textlayer and add text to it
Photoshop.ArtLayer artLayerRef = docRef.ArtLayers.Add();
artLayerRef.Kind = Photoshop.PsLayerKind.psTextLayer;
artLayerRef.TextItem.Contents = "Hallå, Fotosidan!";

// rasterize the text layer
artLayerRef.Rasterize(Photoshop.PsRasterizeType.psEntireLayer);

Koden kräver en referens till PS object library (högerklicka på References i Solution explorer, välj Add reference, under fliken COM dubbelklicka på "Adobe Photoshop 8.0 Object Library", klicka OK)
 
Någon som vet hur själva bildinformationen kan överföras mellan skriptet och Photoshop?

Skulle vilja läsa över bilden till "skript"-applikationen från ett PS-dokument, göra förändringar, och därefter skriva tillbaks bilden.
 
müsli skrev:
Någon som vet hur själva bildinformationen kan överföras mellan skriptet och Photoshop?

Skulle vilja läsa över bilden till "skript"-applikationen från ett PS-dokument, göra förändringar, och därefter skriva tillbaks bilden.

Nja, scriptmöjligheten är som ett avancerat macro. Scriptet kan bara göra vad en användare gör, dvs simulera menyval, tangentbord, öppna filer, lägga till lager etc, etc.

Jag har skrivit lite skript för att scala om och rotera bilder. Språket blev vb.net men det går lika bra med vb, eller js för den delen.

Adobe har en scriptingguide, tanka ner den.

Ex för att öppna en fil.

PH = CreateObject("Photoshop.Application")
Docref = PH.Open(strFilename)
 
Då återstår väl att få tag på SDKn för PS, eller att gå via filsystemet för att få över pixlarna till applikationen. (skripta save/open, eventuellt via ett temp-doc)
 
Ola: Ja, copy/paste funkar bra. Man kan ju tydligen enkelt välja om det är hela lagret, selection inom lagret, eller "merged copy" (alla activa lager) som ska kopieras.
I .Net är det ju enkelt att hantera copy/paste med Clipboard klassen.

Jim: Ok, tack, ska kolla på SDK'n, men ska försöka klara mig utan först. ;)
Jag var inne på att använda senaste versionen av SDK, men du har rätt, eftersom även tidigare pluggins funkar i senare versioner av PS så borde det ju funka fint att använda v6 SDK'n.
 
ANNONS
Götaplatsens Foto