Annons

Skala om lager så det matchar bild.

Produkter
(logga in för att koppla)

joeljonsson

Medlem
Tjena, jag skulle behöva skala om ett lager så det får samma storlek som bilden. (Enkelt tänker ni, ctrl-t och dra ut kanterna). Problemet är att jag måste automatisera detta.

Detta ska göras på hundratals bilder. Bildernas storlek varierar men lagret storlek är det samma (ca 1000*700 px). Lagret måste dock bli exakt kant i kant med "huvudbilden". Det spelar ingen roll om proportionerna på lagret ändras.
 
Borde det inte gå att spela in en action som skalar och sedan använda denna action i File->Automate->Batch på en mapp med alla bilderna i?
 
Jo, men jag undrar inte hur man spelar in en action utan hur man gör för att scala om ett lager till samma storlek som bilden. Att göra det manuellt genom Free Transform och spela in som action är ju enkelt om man sedan ska applicera det på ett gäng bilder som har exakt samma storlek. Men det fungerar ju inte om man ska applicera det på bilder med olika storlek.
 
Välj Image->Image Size... med lagret aktivt
Sätt Width till 100% och Height till 100%, borde inte det fungera?
 
Image Size scalar om bilden inte lagret. Även om lagret är valt.

Gör en action som:

1. Kopierar lagrets innehåll
2. Skapar ett nytt dok och klistrar in det i det
3. Skalar om
4. Kopierar det nya doket (och slänger det)
5. Klistrar in i ditt huvuddokument
6. Raderar det gamla felaktiga lagret

Borde funka
 
Hmm.. där hängde jag inte riktigt med. När jag försöker göra som skriver så blir det tok på en gång.

Alltså, jag har en bild (som ligger som bakgrundslager) säg 5000 * 3000 pixlar (OBS! denna storlek varierar bland de andra bilderna som jag ska köra denna automatisering på).
Sedan har jag ett till lager som är 2500 * 1200 pixlar.

Nu vill jag alltså skala om lagret så det matchar bildstorleken.
 
Ok. Är lagret någon form av objekt? Dvs en logotyp från Illustrator eller en text? Annars, om du skalar upp en pixelbild från 1000 till 5000px, kommer det att se apa ut.
 
Jo tack, jag vet. Det är inte min fråga.

Min fråga är om man genom automatisering kan skala om ett lager (storleken på lagret är obetydlig i sammanhanget) till samma storlek som orginalbilden eller "bakgrundslagret" om du så vill. (storleken även här obetydlig).

OBS! Bakgrundslagrets storlek varierar från bild till bild vid batch-automatiseringen.
 
Ja, du kan gora detta. Med Scripting. Vilket kraver en del expertis (langt utanfor min egen niva).

Du ar lite vag i vad det ar som ska skalas. Ar det samma sak du klistrar in i varje bild? Da bor det funka med att gora en "place", men objektet maste i original vara storre an alla bilder den ska in i.

Pasteat fran webben: "one of the developers on the adobe forums said all i gotta do is create a *.pdp file and use the File>place command to import an image that is larger than any canvas i plan on using. Since most of the canvases that i will print are no larger than 13"-narrow @300dpi, i just made an 8x8@600 dpi transparent canvas with my logo on it, and import using "Place..." and then finish it off by applying actions that will align it properly in the corner, give it a drop shadow and PRESTO! Too easy!"
 
Lösningen var att göra ett script som skalar om lagret. Nedan är scriptet inklippt.

var startRulerUnits = app.preferences.rulerUnits;
var startTypeUnits = app.preferences.typeUnits;
app.preferences.rulerUnits = Units.PIXELS;
app.preferences.typeUnits = TypeUnits.PIXELS;
var doc = activeDocument;
var docWidth = doc.width.value;
var docHeight = doc.height.value;
var LB = doc.activeLayer.bounds;
var LHeight = Math.abs(LB[3].value) - Math.abs(LB[1].value);
var LWidth = Math.abs(LB[2].value) - Math.abs(LB[0].value);
var percentageHeight = ((docHeight/LHeight)*100);
var percentageWidth = ((docWidth/LWidth)*100);
doc.activeLayer.resize(percentageWidth,percentageHeight,AnchorPosition.MIDDLECENTER);
align('AdCH');
align('AdCV');
app.preferences.typeUnits = startTypeUnits;
app.preferences.rulerUnits = startRulerUnits;
function align(method) {
app.activeDocument.selection.selectAll();
var desc = new ActionDescriptor();
var ref = new ActionReference();
ref.putEnumerated( charIDToTypeID( "Lyr " ), charIDToTypeID( "Ordn" ), charIDToTypeID( "Trgt" ) );
desc.putReference( charIDToTypeID( "null" ), ref );
desc.putEnumerated( charIDToTypeID( "Usng" ), charIDToTypeID( "ADSt" ), charIDToTypeID( method ) );
executeAction( charIDToTypeID( "Algn" ), desc, DialogModes.NO );
app.activeDocument.selection.deselect();
};
 
ANNONS
Götaplatsens Foto