photoshop action för arbetsyta

Tråden skapades och har fått 8 svar. Det senaste inlägget skrevs .
1
  • Medlem
  • Göteborg
  • 2010-08-08 15:31

Hej!

Behöver automatisera en större batch i photoshop. Bilderna är olika storlekar och upplösningar.

Jag vill lägga på en yta runt bilderna som är 25% av bildens höjd. Detta ska ge en vit yta runt bilden som är lika stor runt hela bilden (i pixlar). Uppe, nere, till höger och vänster.

Hade ju varit lättare sagt än gjort om alla bilderna var lika stora och samma dimensioner och man bara kunde sätta en fast pixelbredd under Storlek på arbetsyta. Men så är det inte.

Några idéer?

Mvh
Markus

  • Medlem
  • 2010-08-08 23:31

Om det inte går att lösa med makro går det säkert med applescript. Googlar du lär du hitta om ingen här slänger ihop ett åt dig.
(Jag blir nästan lite sugen på att testa för att se om jag alls kan skripta PS.)

  • Medlem
  • Göteborg
  • 2010-08-16 18:41

Baron! Läste ditt svar för en stund sen och tänkte: jaaa, såklart, applescript fixar detta. Ungefär 10 min senare slogs min machjärna av att vi kör windows på hela företaget.
Ditt inlägg gav ändå ett litet uppslag, ska googla vidare lite...

Om någon annan har idéer så hör gärna av er...

  • Medlem
  • 2010-08-16 22:11

Richard Rönnbäck här på forumet kan säkert hjälpa er. Han jobbar med sånt.

  • Medlem
  • 2010-08-16 23:56
Ursprungligen av Baron:

Richard Rönnbäck här på forumet kan säkert hjälpa er. Han jobbar med sånt.

Och Mattias Jonsson, förstås! Hur kunde jag glömma?!

  • Medlem
  • Göteborg
  • 2010-08-17 07:07

Ett javascript som löser problemet

Se nedan för fungerande javascript som löser ovanstående.

var newHeight = app.activeDocument.height + app.activeDocument.height 0.2;
var newWidth = app.activeDocument.width +app.activeDocument.width * 0.2;
app.activeDocument.resizeCanvas (newWidth, newHeight, AnchorPosition.MIDDLECENTER);

Giltiga värden för anchorposition är:
BOTTOMCENTER, BOTTOMLEFT, BOTTOMRIGHT, MIDDLECENTER, MIDDLELEFT,
MIDDLERIGHT, TOPCENTER, TOPLEFT, TOPRIGHT

Om företaget vill switcha så är det enkelt

tell application "Adobe Photoshop CS5"
	
	set myProps to properties of document 1 --Läs in properties från öppet dokument
	set myHeight to height of myProps -- Extrahera aktuell höjd
	set myWidth to width of myProps -- Extrahera aktuell bredd
	
	--Räkna ut ny redd & höjd
	set myNewHeight to (myHeight + {myHeight * 0.2})
	set myNewWidth to (myWidth + (myHeight * 0.2))
	
	
	--Ändra canvasstorlek med de nya värdena
	tell document 1
		resize canvas height myNewHeight
		resize canvas width myNewWidth
	end tell
	
end tell
  • Medlem
  • 2010-08-17 09:41

Härligt! En "ny" kompetent skriptare på forumet!

  • Medlem
  • Göteborg
  • 2010-08-17 22:08

Hej!
Tack för hjälpen!

Då har man lärt sig något nytt idag också. Det var ju inte alls svårt med javascript!
Här kommer den färdiga koden.

Först kollar den om bilden är liggande eller stående.
Om det är en liggande bild läggs 25% yta på runt baserat på bredden.
Om det är en stående bild läggs 25% yta på runt baserat på höjden.

På detta sätt blir den vita ytan lika stor (procentuellt) oavsett om bilden är liggande eller stående.

#target photoshop

app.bringToFront();

var doc = app.activeDocument;
if (doc.width > doc.height) {
		var newHeight = app.activeDocument.height + app.activeDocument.width * 0.25;
		var newWidth = app.activeDocument.width + app.activeDocument.width * 0.25;
		app.activeDocument.resizeCanvas (newWidth, newHeight, AnchorPosition.MIDDLECENTER);
}

else {
		var newWidth = app.activeDocument.width + app.activeDocument.height * 0.25;
		var newHeight = app.activeDocument.height + app.activeDocument.height * 0.25;
		app.activeDocument.resizeCanvas (newWidth, newHeight, AnchorPosition.MIDDLECENTER);
}

(Photoshop CS4)

1
Bevaka tråden