![]() |
#7
|
|||
|
|||
Am einfachsten ist es mit diesem Skript man kann die nummer der gewünschten Kopien eingaben.
// Duplicate Image (Copies) - Adobe Photoshop Script // Description: create one or more copies of the active document // Requirements: Adobe Photoshop CS3, or higher // ================================================== ========================== // Installation: // 1. Place script in: // PC(32): C:\Program Files (x86)\Adobe\Adobe Photoshop CS#\Presets\Scripts\ // PC(64): C:\Program Files\Adobe\Adobe Photoshop CS# (64 Bit)\Presets\Scripts\ // Mac: <hard drive>/Applications/Adobe Photoshop CS#/Presets/Scripts/ // 2. Restart Photoshop // 3. Choose File > Scripts > Duplicate Image (Copies) // ================================================== ========================== // enable double-clicking from Mac Finder or Windows Explorer #target photoshop // bring application forward for double-click events app.bringToFront(); /////////////////////////////////////////////////////////////////////////////// // main - main function /////////////////////////////////////////////////////////////////////////////// function main() { // get Duplicate Image dialog var dialog = duplicateImageDialog(activeDocument); if (dialog.show() == 1) { // create duplicate copies for (var i = 0; i < dialog.copies; i++) { // merge layers duplicateImage(dialog.merged); } } } /////////////////////////////////////////////////////////////////////////////// // duplicateImageDialog - create Duplicate Image dialog /////////////////////////////////////////////////////////////////////////////// function duplicateImageDialog(doc) { // dialog properties var dlg = new Window('dialog', 'Duplicate Image (Copies)', undefined, {closeButton: false}); dlg.orientation = 'row'; dlg.alignChildren = 'fill'; dlg.merged = false; dlg.copies = 1; // left side var main = dlg.add('group'); main.orientation = 'column'; main.alignChildren = 'left'; // document name group var source = main.add('group'); source.orientation = 'row'; // label source.label = source.add('statictext'); source.label.text = 'Duplicate:'; // document name source.name = source.add('statictext'); source.name.text = doc.name; source.name.helpTip = getDocumentPath(doc); // document copies group var copies = main.add('group'); copies.orientation = 'row'; // label copies.label = copies.add('statictext'); copies.label.justify = 'right'; copies.label.text = '&Copies:'; copies.label.preferredSize.width = source.label.preferredSize.width; // document copies field copies.field = copies.add('edittext'); copies.field.characters = 5; copies.field.text = 1; copies.field.active = true; copies.field.addEventListener('keydown', NumericEditKeyboardHandler); copies.field.onChange = function() { var num = parseInt(this.text, 10); if (num < 1 || num > 99) { alert('An integer between 1 and 99 is required.', 'Invalid Entry', true); num > 99 ? num = 99 : num = 1; this.text = num; this.active = true; } dlg.copies = num; } // merge layers group var merged = main.add('group'); merged.orientation = 'row'; // merge layers checkbox merged.cb = merged.add('checkbox'); merged.cb.text = 'Duplicate &Merged Layers Only'; merged.value = false; merged.enabled = doc.layers.length > 1 ? true : false; merged.cb.onClick = function() { dlg.merged = this.value; } // buttons group var buttons = dlg.add('group'); buttons.orientation = 'column'; buttons.alignChildren = 'fill'; // OK button var btnOK = buttons.add('button'); btnOK.text = 'OK'; dlg.defaultElement = btnOK; // Cancel button var btnCancel = buttons.add('button'); btnCancel.text = 'Cancel'; dlg.cancelElement = btnCancel; return dlg; } /////////////////////////////////////////////////////////////////////////////// // getDocumentPath - returns the document path if one exists /////////////////////////////////////////////////////////////////////////////// function getDocumentPath(doc) { try { return File(doc.fullName).fsName; } catch(e) { return ''; } } /////////////////////////////////////////////////////////////////////////////// // duplicateImage - Image Duplicate /////////////////////////////////////////////////////////////////////////////// function duplicateImage(merged) { var desc1 = new ActionDescriptor(); var ref1 = new ActionReference(); ref1.putEnumerated(cTID('Dcmn'), cTID('Ordn'), cTID('Frst')); desc1.putReference(cTID('null'), ref1); if (merged) {desc1.putBoolean(cTID('Mrgd'), true);} executeAction(cTID('Dplc'), desc1, DialogModes.NO); } function cTID(s) {return app.charIDToTypeID(s);} /////////////////////////////////////////////////////////////////////////////// // Function: NumericEditKeyboardHandler // Source: Adobe // Usage: Do not allow anything except for numbers 0-9 // Input: ScriptUI keydown event // Return: <nothing> key is rejected and beep is sounded if invalid /////////////////////////////////////////////////////////////////////////////// function NumericEditKeyboardHandler(event) { try { var keyIsOK = KeyIsNumeric(event) || KeyIsDelete(event) || KeyIsLRArrow(event) || KeyIsTabEnterEscape(event); if (!keyIsOK) { // Bad input: tell ScriptUI not to accept the keydown event event.preventDefault(); // Notify user of invalid input: // make sure NOT to put up an alert dialog or do anything which requires user interaction, // because that interferes with preventing the 'default' action for the keydown event app.beep(); } } catch(e) { // alert('Ack! Bug in NumericEditKeyboardHandler: ' + e); } } // key identifier functions function KeyHasModifier(event) { return event.shiftKey || event.ctrlKey || event.altKey || event.metaKey; } function KeyIsNumeric(event) { return (event.keyName >= '0') && (event.keyName <= '9') && !KeyHasModifier(event); } function KeyIsDelete(event) { // Shift-delete is ok return (event.keyName == 'Backspace') && !(event.ctrlKey); } function KeyIsLRArrow(event) { return ((event.keyName == 'Left') || (event.keyName == 'Right')) && !(event.altKey || event.metaKey); } function KeyIsTabEnterEscape(event) { return event.keyName == 'Tab' || event.keyName == 'Enter' || event.keyName == 'Escape'; } /////////////////////////////////////////////////////////////////////////////// // isCorrectVersion - check for Adobe Photoshop CS3 (v10) or higher /////////////////////////////////////////////////////////////////////////////// function isCorrectVersion() { if (parseInt(version, 10) >= 10) { return true; } else { alert('This script requires Adobe Photoshop CS3 or higher.', 'Wrong version', false); return false; } } /////////////////////////////////////////////////////////////////////////////// // isOpenDocs - ensure at least one document is open /////////////////////////////////////////////////////////////////////////////// function isOpenDocs() { if (documents.length) { return true; } else { alert('There are no documents open.', 'No documents open', false); return false; } } /////////////////////////////////////////////////////////////////////////////// // showError - display error message if something goes wrong /////////////////////////////////////////////////////////////////////////////// function showError(err) { if (confirm('An unknown error has occurred.\n' + 'Would you like to see more information?', true, 'Unknown error')) { alert(err + ': on line ' + err.line, 'Script Error', true); } } // test initial conditions prior to running main function if (isCorrectVersion() && isOpenDocs()) { try { main(); } catch(e) { // don't report error on user cancel if (e.number != 8007) { showError(e); } } } |
Lesezeichen |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|
![]() |
||||
Thema | Autor | Forum | Antworten | Letzter Beitrag |
Bild mit mehreren Filter mehrfach abspeichern | gelöschter User | Hilfestellung, Tipps und Tricks | 11 | 03.03.11 14:54 |
mehrfach angezeigte Frames | RainbowPhoenix | Hilfestellung, Tipps und Tricks | 10 | 12.10.10 06:11 |