• Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
    Dedicated community for Japanese speakers
  • 한국 커뮤니티
    Dedicated community for Korean speakers
Exit
0

Script to sub-divide an image into 4x6s.

New Here ,
Mar 21, 2010 Mar 21, 2010

Copy link to clipboard

Copied

I like to make large images, like 20x30s and 30x40s.  Proofing these is expensive.  I'm looking for a script that would automatically take an image file and carve it into adjoining 4x6s that I can send through a printing service for the first proof.  A 30x40 print costs me $78 with shipping.  The 50 4x6s would only cost $10-20 dollars assuming I printed them all.

So has anyone writen or know of a script of this nature?

TOPICS
Actions and scripting

Views

1.8K

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines

correct answers 1 Correct answer

Valorous Hero , Mar 22, 2010 Mar 22, 2010

I have modified the script and added a checkbox, if ticked it will save and close each new section, save them as jpg with a quality of 12 into a folder off the active documents folder called Chop-O-Matic. If it's a new document that hasn't been saved the folder will be created on the desktop. On completion the new folder will be opened.


#target photoshop
function main(){
var dlg=
"dialog{text:'Script Interface',bounds:[100,100,380,290],"+
"panel0:Panel{bounds:[10,10,270,180] , text:'' ,properties:{bo

...

Votes

Translate

Translate
Adobe
Community Expert ,
Mar 22, 2010 Mar 22, 2010

Copy link to clipboard

Copied

You could do a search for xbytor’s »TileMaker«-Script.

But are You sure the prints would measure up to the more expensive proofs in color-consistency and -reliabilty?

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Mar 22, 2010 Mar 22, 2010

Copy link to clipboard

Copied

I found the tile maker.  It's erroring out on my computer, Windows, CS2 combo.

I do not expect the mass printed cheap 4x6s to come close to rivaling a well made 30x40 print, particularly in the color department.  What I do hope is that it will show me the limits of image quality blown up to such large size.  I want an inexpensive way to "proof" image sharpness and for the little things one only notices when the image is enlarged.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Valorous Hero ,
Mar 22, 2010 Mar 22, 2010

Copy link to clipboard

Copied

Here is a script that will chop the active document into sections.


#target photoshop
function main(){
var dlg=
"dialog{text:'Script Interface',bounds:[100,100,380,260],"+
"panel0:Panel{bounds:[10,10,270,150] , text:'' ,properties:{borderStyle:'etched',su1PanelCoordinates:true},"+
"title:StaticText{bounds:[60,10,220,40] , text:'Chop-o-matic' ,properties:{scrolling:undefined,multiline:undefined}},"+
"panel1:Panel{bounds:[10,40,250,100] , text:'' ,properties:{borderStyle:'etched',su1PanelCoordinates:true},"+
"statictext1:StaticText{bounds:[10,10,111,30] , text:'Accross' ,properties:{scrolling:undefined,multiline:undefined}},"+
"statictext2:StaticText{bounds:[140,10,230,27] , text:'Down' ,properties:{scrolling:undefined,multiline:undefined}},"+
"across:DropDownList{bounds:[10,30,100,50]},"+
"down:DropDownList{bounds:[140,30,230,50]}},"+
"button0:Button{bounds:[10,110,110,130] , text:'Ok' },"+
"button1:Button{bounds:[150,110,250,130] , text:'Cancel' }}};"
var win = new Window(dlg,'Chop-o-matic');
if(version.substr(0,version.indexOf('.'))>9){
win.panel0.title.graphics.font = ScriptUI.newFont("Arial","BOLD",20);
g = win.graphics;
var myBrush = g.newBrush(g.BrushType.SOLID_COLOR, [1.00, 1.00, 1.00, 1]);
g.backgroundColor = myBrush;
var myPen =g.newPen (g.PenType.SOLID_COLOR, [1.00, 0.00, 0.00, 1],lineWidth=1);
}
win.center();
  for(var i=1;i<31;i++){
   win.panel0.panel1.across.add ('item', i);    
   win.panel0.panel1.down.add ('item', i);    
  }
win.panel0.panel1.across.selection=0;
win.panel0.panel1.down.selection=0;
var done = false;
    while (!done) {
      var x = win.show();
      if (x == 0 || x == 2) {
        win.canceled = true;
        done = true;
      } else if (x == 1) {
        done = true;
        {
if(!documents.length)return;
var startRulerUnits = preferences.rulerUnits;
preferences.rulerUnits = Units.PIXELS;
doc = app.activeDocument;
app.displayDialogs = DialogModes.NO;
var tilesAcross = parseInt(win.panel0.panel1.across.selection.index)+1;
var tilesDown =parseInt(win.panel0.panel1.down.selection.index)+1;
var tileWidth = parseInt(doc.width/tilesAcross);
var tileHeight = parseInt(doc.height/tilesDown);
ProcessFiles(tilesDown,tilesAcross,tileWidth,tileHeight);
app.preferences.rulerUnits = startRulerUnits;     
      }
   }
  }
}
main();
function ProcessFiles(Down,Across,offsetX,offsetY){
try{
var newName = activeDocument.name.match(/(.*)\.[^\.]+$/)[1];
}catch(e){var newName="UntitledChop"}
TLX = 0; TLY = 0; TRX = offsetX; TRY = 0;
BRX = offsetX; BRY = offsetY; BLX = 0; BLY = offsetY;
for(var a = 0; a < Down; a++){
  for(var i = 0;i <Across; i++){
   app.activeDocument.duplicate (newName +"#"+a+"-"+i, true);
    activeDocument.selection.select([[TLX,TLY],[TRX,TRY],[BRX,BRY],[BLX,BLY]], SelectionType.REPLACE, 0, false);
    executeAction( charIDToTypeID( "Crop" ), undefined, DialogModes.NO );
    app.activeDocument.selection.deselect();
    activeDocument = documents[0];
TLX = offsetX * (i+1) ; TRX  = TLX + offsetX; BRX = TRX; BLX = TLX; 
    }
TLX = 0; TLY = offsetY * (a +1); TRX = offsetX; TRY = offsetY * (a +1);
BRX = offsetX; BRY = TRY + offsetY; BLX = 0; BLY = (offsetY * (a +1)+offsetY);

}
}

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Mar 22, 2010 Mar 22, 2010

Copy link to clipboard

Copied

Chop-o-matic script is sweet.  I believe that it is 90% of what I need.  Now I only need to figure out how to automate saving each of the windows to a unique file name.  I'll see if I can use the example to also ask for an output directorr, to save as high quality jegs to that directory, and close the window.  Thanks.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Valorous Hero ,
Mar 22, 2010 Mar 22, 2010

Copy link to clipboard

Copied

I have modified the script and added a checkbox, if ticked it will save and close each new section, save them as jpg with a quality of 12 into a folder off the active documents folder called Chop-O-Matic. If it's a new document that hasn't been saved the folder will be created on the desktop. On completion the new folder will be opened.


#target photoshop
function main(){
var dlg=
"dialog{text:'Script Interface',bounds:[100,100,380,290],"+
"panel0:Panel{bounds:[10,10,270,180] , text:'' ,properties:{borderStyle:'etched',su1PanelCoordinates:true},"+
"title:StaticText{bounds:[60,10,220,40] , text:'Chop-o-matic' ,properties:{scrolling:undefined,multiline:undefined}},"+
"panel1:Panel{bounds:[10,40,250,130] , text:'' ,properties:{borderStyle:'etched',su1PanelCoordinates:true},"+
"statictext1:StaticText{bounds:[10,10,111,30] , text:'Accross' ,properties:{scrolling:undefined,multiline:undefined}},"+
"statictext2:StaticText{bounds:[140,10,230,27] , text:'Down' ,properties:{scrolling:undefined,multiline:undefined}},"+
"across:DropDownList{bounds:[10,30,100,50]},"+
"down:DropDownList{bounds:[140,30,230,50]},"+
"saveFiles:Checkbox{bounds:[10,60,230,80] , text:'Save and Close new files?'}},"+
"button0:Button{bounds:[10,140,110,160] , text:'Ok' },"+
"button1:Button{bounds:[150,140,250,160] , text:'Cancel' }}};"
var win = new Window(dlg,'Chop-o-matic');
if(version.substr(0,version.indexOf('.'))>9){
win.panel0.title.graphics.font = ScriptUI.newFont("Arial","BOLD",20);
g = win.graphics;
var myBrush = g.newBrush(g.BrushType.SOLID_COLOR, [1.00, 1.00, 1.00, 1]);
g.backgroundColor = myBrush;
var myPen =g.newPen (g.PenType.SOLID_COLOR, [1.00, 0.00, 0.00, 1],lineWidth=1);
}
win.center();
  for(var i=1;i<31;i++){
   win.panel0.panel1.across.add ('item', i);    
   win.panel0.panel1.down.add ('item', i);    
  }
win.panel0.panel1.across.selection=0;
win.panel0.panel1.down.selection=0;
var done = false;
    while (!done) {
      var x = win.show();
      if (x == 0 || x == 2) {
        win.canceled = true;
        done = true;
      } else if (x == 1) {
        done = true;
        {
if(!documents.length)return;
var startRulerUnits = preferences.rulerUnits;
preferences.rulerUnits = Units.PIXELS;
doc = app.activeDocument;
app.displayDialogs = DialogModes.NO;
var tilesAcross = parseInt(win.panel0.panel1.across.selection.index)+1;
var tilesDown =parseInt(win.panel0.panel1.down.selection.index)+1;
var tileWidth = parseInt(doc.width/tilesAcross);
var tileHeight = parseInt(doc.height/tilesDown);
var SaveFiles = win.panel0.panel1.saveFiles.value;
ProcessFiles(tilesDown,tilesAcross,tileWidth,tileHeight,SaveFiles);
app.preferences.rulerUnits = startRulerUnits;     
      }
   }
  }
}
main();
function ProcessFiles(Down,Across,offsetX,offsetY,SaveFiles){
try{
var newName = activeDocument.name.match(/(.*)\.[^\.]+$/)[1];
}catch(e){var newName="UntitledChop"}
var Path='';
try{
Path =  activeDocument.path;
}catch(e){Path = "~/Desktop";}
if(SaveFiles){
Path = Folder(decodeURI(Path) +"/Chop-O-Matic");
if(!Path.exists) Path.create();
     }
TLX = 0; TLY = 0; TRX = offsetX; TRY = 0;
BRX = offsetX; BRY = offsetY; BLX = 0; BLY = offsetY;
for(var a = 0; a < Down; a++){
  for(var i = 0;i <Across; i++){
            var NewFileName = newName +"#"+a+"-"+i;
   app.activeDocument.duplicate (NewFileName, true);
    activeDocument.selection.select([[TLX,TLY],[TRX,TRY],[BRX,BRY],[BLX,BLY]], SelectionType.REPLACE, 0, false);
    executeAction( charIDToTypeID( "Crop" ), undefined, DialogModes.NO );
    app.activeDocument.selection.deselect();
if(SaveFiles){
var saveFile = File(decodeURI(Path+"/"+NewFileName+".jpg"));
SaveJPEG(saveFile, 12);
app.activeDocument.close(SaveOptions.DONOTSAVECHANGES);
}
    activeDocument = documents[0];
TLX = offsetX * (i+1) ; TRX  = TLX + offsetX; BRX = TRX; BLX = TLX; 
    }
TLX = 0; TLY = offsetY * (a +1); TRX = offsetX; TRY = offsetY * (a +1);
BRX = offsetX; BRY = TRY + offsetY; BLX = 0; BLY = (offsetY * (a +1)+offsetY);

}
if(SaveFiles){
Path.execute()
    }
}
function SaveJPEG(saveFile, jpegQuality){
jpgSaveOptions = new JPEGSaveOptions();
jpgSaveOptions.embedColorProfile = true;
jpgSaveOptions.formatOptions = FormatOptions.STANDARDBASELINE;
jpgSaveOptions.matte = MatteType.NONE;
jpgSaveOptions.quality = jpegQuality;
activeDocument.saveAs(saveFile, jpgSaveOptions, true,Extension.LOWERCASE);
}

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Mar 23, 2010 Mar 23, 2010

Copy link to clipboard

Copied

This is super sweet.  Thanks Paul.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Feb 18, 2018 Feb 18, 2018

Copy link to clipboard

Copied

Hi Paul,

I am helping out a facebook group run a raffle online as well as in person.

They have asked me to scan in their raffle books so they can email tickets to people who buy online and also sell physical tickets.

The book is about 100 pages with 5 ticket per page. I think your script will be perfect for the job of doing all the slicing. I'm just wondering - will it work with Photoshop CC 2018?

Thanks in advance for any advice. I'm away for work over the next week so won't have access to my personal computer so may not respond quickly.

Cheers,

Con.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Feb 18, 2018 Feb 18, 2018

Copy link to clipboard

Copied

Paul Riggott has withdrawn from these Fora, maybe you should start a new thread.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Feb 18, 2018 Feb 18, 2018

Copy link to clipboard

Copied

LATEST

Ok thanks mate.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines