graphic:javascript:photoshop

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
graphic:javascript:photoshop [2023/03/05 02:57] – [Doc operation code] yinggraphic:javascript:photoshop [2023/03/05 03:02] (current) – [Doc operation code] ying
Line 287: Line 287:
 </code> </code>
   * resize doc <code javascript>app.activeDocument.resizeImage('150%', '150%');</code>   * resize doc <code javascript>app.activeDocument.resizeImage('150%', '150%');</code>
 +  * resize to A4 size ratio <code javascript>
 +/*
 +reisize to fit A4
 +by ying n chatGPT
 +2023.03.05
 +*/
 +// Get the active document
 +var doc = app.activeDocument;
 +app.backgroundColor.rgb.red = 255;
 +app.backgroundColor.rgb.green = 255;
 +app.backgroundColor.rgb.blue = 255;
 +// Define the A4 size in pixels (assuming 300 DPI)
 +var a4Width = 2480; // 8.27 inches * 300 pixels per inch
 +var a4Height = 3508; // 11.69 inches * 300 pixels per inch
 +var a4Ratio = a4Width / a4Height;
 +
 +// Get the current canvas size
 +var currentWidth = doc.width.value;
 +var currentHeight = doc.height.value;
 +var currentRatio = currentWidth / currentHeight;
 +
 +// Calculate the new canvas size
 +var newWidth = currentWidth;
 +var newHeight = currentHeight;
 +if (currentRatio > a4Ratio) {
 +  // Extend the height to match the A4 ratio
 +  newHeight = Math.round(newWidth / a4Ratio);
 +} else {
 +  // Extend the width to match the A4 ratio
 +  newWidth = Math.round(newHeight * a4Ratio);
 +}
 +
 +// Only resize the canvas if the new size is larger than the current size
 +if (newWidth > currentWidth || newHeight > currentHeight) {
 +  // Calculate the position of the current content
 +  var x = Math.round((newWidth - currentWidth) / 2);
 +  var y = Math.round((newHeight - currentHeight) / 2);
 +
 +  // Resize the canvas
 +  doc.resizeCanvas(newWidth, newHeight, AnchorPosition.MIDDLECENTER);
 +}
 +
 +</code>
   * file and folder <code javascript>   * file and folder <code javascript>
 var samplesFolder = Folder(app.path + "/Samples/") var samplesFolder = Folder(app.path + "/Samples/")
Line 323: Line 366:
 </code> </code>
   * print each layer <code javascript>   * print each layer <code javascript>
-/* +var msg = "Make sure you set your print setting correct and done,\nthen click Yes to run batch print layer" 
-reisize to fit A4 +if (confirm(msg)) { 
-by ying n chatGPT +    // Get the current active document 
-2023.03.05 +    var doc = app.activeDocument;
-*/ +
-// Get the active document +
-var doc = app.activeDocument+
-app.backgroundColor.rgb.red = 255; +
-app.backgroundColor.rgb.green = 255; +
-app.backgroundColor.rgb.blue = 255; +
-// Define the A4 size in pixels (assuming 300 DPI) +
-var a4Width = 2480; // 8.27 inches * 300 pixels per inch +
-var a4Height = 3508; // 11.69 inches * 300 pixels per inch +
-var a4Ratio = a4Width / a4Height;+
  
-// Get the current canvas size +    // Get all the layers except the background layer 
-var currentWidth = doc.width.value+    var layers []; 
-var currentHeight = doc.height.value+    for (var i = 0; i < doc.layers.lengthi++) { 
-var currentRatio currentWidth / currentHeight;+        if(!doc.layers[i].isBackgroundLayer){ 
 +            layers.push(doc.layers[i])
 +        } 
 +    } 
 +    // Hide all the layers 
 +    for (var 0i < layers.length; i++) { 
 +        layers[i].visible = false; 
 +    }
  
-// Calculate the new canvas size +    // Loop through each layer and print it 
-var newWidth currentWidth+    for (var 0i < layers.length; i++) { 
-var newHeight currentHeight+        // Show the current layer 
-if (currentRatio > a4Ratio{ +        layers[i].visible true
-  // Extend the height to match the A4 ratio +         
-  newHeight Math.round(newWidth / a4Ratio);+        // Print the current layer 
 +        app.activeDocument.print(); 
 +        //alert('printing'+layers[i].name) 
 +         
 +        // Hide the current layer 
 +        layers[i].visible = false; 
 +    } 
 + 
 +    // Show all the layers again 
 +    for (var i 0; i < layers.length; i++
 +        layers[i].visible = true; 
 +    }
 } else { } else {
-  // Extend the width to match the A4 ratio +  alert("Printing cancelled.");
-  newWidth = Math.round(newHeight * a4Ratio);+
 } }
 +</code>
 +  * split image vertically equally into N part, and stack into new doc, optionally crop border pixel <code javascript>
 +//=======================================
 +//#  image split by n
 +//=======================================
 +var doc = app.activeDocument;
  
-// Only resize the canvas if the new size is larger than the current size +// Prompt the user for the number of parts 
-if (newWidth > currentWidth || newHeight > currentHeight) { +var parseInt(prompt("Enter the number of parts to split the image into:", 4));
-  // Calculate the position of the current content +
-  var Math.round((newWidth - currentWidth) / 2); +
-  var y = Math.round((newHeight - currentHeight/ 2);+
  
-  // Resize the canvas +// Calculate the height of each part 
-  doc.resizeCanvas(newWidthnewHeightAnchorPosition.MIDDLECENTER);+var partHeight = Math.floor(doc.height / n); 
 + 
 +// Create a new document with the width of the original image and the height of one part 
 +var newDoc = app.documents.add(doc.width, partHeight, doc.resolution, "Split Image"); 
 + 
 +// Loop through each part of the image 
 +for (var i = 0; i < n; i++) { 
 +  // Define the source rectangle for the part 
 +  var sourceRect = [ 
 +    [0, i * partHeight], 
 +    [doc.width, i * partHeight], 
 +    [doc.width, (i + 1) * partHeight], 
 +    [0(i + 1) * partHeight] 
 +  ]; 
 + 
 +  // Activate the source document 
 +  app.activeDocument = doc; 
 +  // Deselect any active selection 
 +  doc.selection.deselect(); 
 +  // Create a new selection 
 +  doc.selection.select(sourceRect); 
 +  // Copy the part to the new document 
 +  doc.selection.copy(); 
 +  // Activate the new document 
 +  app.activeDocument = newDoc; 
 +  // Paste the part into the new document 
 +  newDoc.paste(); 
 +  // Move the selection down by the height of one part 
 +  app.activeDocument = doc; 
 +  doc.selection.translateBoundary(0, partHeight);
 } }
 +//======================================= 
 +//#  trim border 
 +//======================================= 
 +app.activeDocument = newDoc; 
 +newDoc.trim(TrimType.TOPLEFT, true, true, true, true);
 </code> </code>
 ===== Execute code ===== ===== Execute code =====
  • graphic/javascript/photoshop.1677985062.txt.gz
  • Last modified: 2023/03/05 02:57
  • by ying