Ich bin schon wieder ein paar Schritte weiter aber jetzt beiße ich mir an dem Thema ein Logo einfügen und auf 1cm in der Höhe verkleinern aus. Kannst Du mir vielleicht nochmal helfen?
Das Logo bekomme ich schon in mein Dokument aber wie bekomme ich es jetzt auf 1cm in der Höhe skaliert und behalte die Proportionen bei, zumal es für ein Dokument das immer die gleiche Größe hat, ja noch gehen würde aber 1cm ist ja je nach Auflösung (dpi) unterschiedlich?
Noch ein klitzekleine Frage und zwar, was muss ich ändern wenn ich nicht möchte das mein Bild beim resize die Auflösung (dpi) beibehält, sondern diese sich bei einer Vergrößerung verringert aber maximal auf 120dpi. Anders gesagt bis zu einer Auflösung von 120 dpi soll das Bild nicht neu berechnet werden, sondern nur die Auflösung angepasst werden bis die Maße stimmen, umso unnötige Qualitätsverluste zu umgehen.
Code:
#target photoshop
var originalRulerUnits = app.preferences.rulerUnits;
app.preferences.rulerUnits = Units.CM;
main ();
function main () {
if (app.documents.length < 1) {
alert ("No document open to resize.");
return;
}
var dlg;
var labelGroup;
var inputGroup;
var widthInput;
var heightInput;
var randInput;
var buttonGroup;
var okButton;
var cancelButton;
dlg = new Window("dialog", "Bildgröße und Rand?");
dlg.orientation = "row";
labelGroup = dlg.add("group");
labelGroup.orientation = "column";
labelGroup.add("statictext", undefined, "Breite cm:");
labelGroup.add("statictext", undefined, "Höhe cm:");
labelGroup.add("statictext", undefined, "Rand cm:");
inputGroup = dlg.add("group");
inputGroup.orientation = "column";
widthInput = inputGroup.add("edittext", undefined, "");
widthInput.characters = 10;
widthInput.active = true;
heightInput = inputGroup.add("edittext", undefined, "");
heightInput.characters = 10;
randInput = inputGroup.add("edittext", undefined, "");
randInput.characters = 10;
buttonGroup = dlg.add("group");
buttonGroup.orientation = "column";
okButton = buttonGroup.add("button", undefined, "OK");
cancelButton = buttonGroup.add("button", undefined, "Cancel");
okButton.onClick = function() {
var doc;
var docWidth;
var docHeight;
var imageWidth;
var imageHeight;
var rand;
var black = new SolidColor();
black.rgb.hexValue = "000000";
app.backgroundColor = black;
var white = new SolidColor();
white.rgb.hexValue = "FFFFFF";
doc = app.activeDocument;
doc.flatten()
imageWidth = widthInput.text.replace(/,/g, '.');
imageWidth = new UnitValue(imageWidth, "cm");
imageHeight = heightInput.text.replace(/,/g, '.');
imageHeight = new UnitValue(imageHeight, "cm");
rand = randInput.text.replace(/,/g, '.');
rand = new UnitValue(rand, "cm");
doc.resizeImage(imageWidth - (rand * 2), imageHeight - (rand * 2));
app.backgroundColor = black;
doc.resizeCanvas(doc.width + 5 + (rand * 2), doc.height + 5 + (rand * 2), AnchorPosition.MIDDLECENTER)
app.backgroundColor = white;
doc.resizeCanvas(doc.width, doc.height + 1, AnchorPosition.BOTTOMCENTER)
// Dokumentname zu Bildüberschrift
var docName = activeDocument.name;;
var neuerName1 = docName.replace("_", " ");
var neuerName2 = neuerName1.replace("_", " ");
var neuerName3 = neuerName2.replace("fertig-merged", "");
var neuerName4 = neuerName3.replace("fertig", "");
var neuerName5 = neuerName4.replace("finish", "");
var neuerName = neuerName5.replace(".psd", "");
main2();
function main2(){
if(!documents.length) return;
var w = new Window ("dialog","Bildbeschriftung");
w.orientation = 'row';
w.alignment='top';
w.pnl = w.add('panel', undefined, undefined, {borderStyle:'black'});
w.g15 = w.pnl.add('group');
w.g15.alignment='left';
w.g15.st1 = w.g15.add('statictext',undefined,'Text');
w.g15.et1 = w.g15.add('edittext',undefined,widthInput.text+" x " + imageHeight + " " +neuerName+" Druck: www.feineart.de");
w.g15.et1.preferredSize=[600,20];
w.g20 = w.pnl.add('group');
w.g20.bu1 = w.g20.add('button',undefined,'Create Text');
w.g20.bu1.preferredSize=[140,25];
w.g20.bu2 = w.g20.add('button',undefined,'Cancel');
w.g20.bu2.preferredSize=[140,25];
w.g20.bu1.onClick=function(){
if(w.g15.et1.text == ''){
alert('No text has been entered!');
return;
}
w.close(0);
var startRulerUnits = preferences.rulerUnits;
app.preferences.rulerUnits = Units.CM;
doc = app.activeDocument;
var artLayer = doc.artLayers.add();
artLayer.kind = LayerKind.TEXT;
var textItem = artLayer.textItem;
textItem.contents = w.g15.et1.text;
textItem.size = 13;
textItem.font = "ArialMT";
textItem.justification = Justification.CENTER;
var textPosition = [doc.width / 2, .65];
textItem.position = textPosition;
artLayer.rotate(180, AnchorPosition.MIDDLECENTER);
preferences.rulerUnits = startRulerUnits;
}
w.show();
}
dlg.hide();
};
dlg.show();
}
//========================================================
app.preferences.rulerUnits = originalRulerUnits;
Das habe ich gefunden um das Logo einzufügen aber ich schaffe es nicht auf meine Bedürfnisse anzupassen.
Code:
/* ==========================================================
// 2017 John J. McAssey (JJMack)
// ======================================================= */
// This script is supplied as is. It is provided as freeware.
// The author accepts no liability for any problems arising from its use.
/*
<javascriptresource>
<about>$$$/JavaScripts/PlaceWatermark/About=JJMack's PlaceWatermark ^r^rCopyright 2017 Mouseprints.net^r^rPhotoshop Script^rCustomize using first four var</about>
<category>JJMack's Script</category>
</javascriptresource>
*/
#target photoshop;
app.bringToFront();
var logoFile = "~/Desktop/JJMack.png"; // Watermark file should be large for resize down works better than up
var LogoSize = 10; // percent of document height to resize Watermark to
var LogoMargin = 1; // percent of Document height the Watermark should have as a margin
var BottomLetf = false; // false = Bottom Right true Bottom Left
placeWatermark(logoFile, LogoSize, LogoMargin); // Place Watermark into the bottom of the document
function placeWatermark(Image,Size,Margin){
if(!documents.length) return; // if no document return
try{
var doc = app.activeDocument; // set Doc object to active document
app.displayDialogs = DialogModes.NO; // Dialog off
var strtRulerUnits = app.preferences.rulerUnits; // Save Users ruler units
var strtTypeUnits = app.preferences.typeUnits; // Save Users Type units
app.preferences.rulerUnits = Units.PIXELS; // work with pixels
app.preferences.typeUnits = TypeUnits.PIXELS; // work with pixels
var fileObj = new File(Image); // the passed file
if(!fileObj.exists){ // If file does not exits tell user
alert(fileObj.name + " does not exist!");
return;
}
var layers = app.activeDocument.layers; // get layers
app.activeDocument.activeLayer = layers[0] // Target Top Layer
placeFile(fileObj); // Place in file the Watermark png file
activeDocument.activeLayer.resize(100 ,100,AnchorPosition.MIDDLECENTER); // Insure Place did not scale layer
var SB = activeDocument.activeLayer.bounds; // get layers bounds
var layerHeight = SB[3] - SB[1]; // get layers height
var resizePercent = (100/layerHeight)*(Size/100*doc.height.value); // Percent to resize by
activeDocument.activeLayer.resize(resizePercent ,resizePercent,AnchorPosition.MIDDLECENTER); // Resize width and height by percentage
SB = activeDocument.activeLayer.bounds; // get resized layers bounds
activeDocument.activeLayer.translate(-SB[0].value,-SB[1].value); // Move resized layer to top left canvas corner
var LayerWidth = (SB[2].value - SB[0].value); // get resized layers width
var LayerHeight = (SB[3].value - SB[1].value); // get resized layers height
marginSize = Margin/100*doc.height.value; // Margin size
// move resized watermark into the document lower right corner with some margin or lower left
if ( BottomLetf) {activeDocument.activeLayer.translate(marginSize,( doc.height.value -marginSize - LayerHeight));}
else {activeDocument.activeLayer.translate((doc.width.value -marginSize - LayerWidth),( doc.height.value -marginSize - LayerHeight));}
}
catch(e) { alert(e + ': on line ' + e.line); } // inform user of error
finally{
app.preferences.rulerUnits = strtRulerUnits; // Restore user ruler units
app.preferences.typeUnits = strtTypeUnits; // Restore user type units
};
};
function placeFile(placeFile) {
var desc21 = new ActionDescriptor();
desc21.putPath( charIDToTypeID('null'), new File(placeFile) );
desc21.putEnumerated( charIDToTypeID('FTcs'), charIDToTypeID('QCSt'), charIDToTypeID('Qcsa') );
var desc22 = new ActionDescriptor();
desc22.putUnitDouble( charIDToTypeID('Hrzn'), charIDToTypeID('#Pxl'), 0.000000 );
desc22.putUnitDouble( charIDToTypeID('Vrtc'), charIDToTypeID('#Pxl'), 0.000000 );
desc21.putObject( charIDToTypeID('Ofst'), charIDToTypeID('Ofst'), desc22 );
executeAction( charIDToTypeID('Plc '), desc21, DialogModes.NO );
};