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

Wanted: a script writer to write a resampling/sharpening script

Engaged ,
Jul 13, 2009 Jul 13, 2009

There’s more on offer from this thread than a few ‘points’ or ‘question answered’. There are dollars as well.

I need a script to do a certain task in InDesign CS4 and Photoshop CS4 and I’m prepared to pay a reasonable amount. Full details of what I require can be downloaded as a PDF from:

http://www.megaupload.com/?d=QRQTL9QU

As part of the process, you will need to test the script on an InDesign document called TEST SCRIPT. The test document, plus a Photoshop Action that the script will be required to be call upon (SHARPEN), can be downloaded as a 88 MB zip file from:

http://www.megaupload.com/?d=MX3K667W

If after reading the PDF you think you are capable of writing such a script, please gmail me at gdburns, telling me when the script might be ready, how much it would cost, and how I would pay you.

TOPICS
Scripting
3.2K
Translate
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

Guide , Jul 20, 2009 Jul 20, 2009

I have NO issues with the links panel. All is updated in CS2 fine so it could be something in CS3/4.

You could replace the line in question with:

set Modified_Images to every link whose status is link out of date

repeat with This_Image in Modified_Images

update This_Image

end repeat

Although I think the out come will be the same.

I don't know if there is any access to workspaces in CS4 to show/hide the links panel? If the issue is just with the GUI not refreshing properly then you could use system

...
Translate
Engaged ,
Jul 14, 2009 Jul 14, 2009

This thread has come partly unstuck because Mark over at http://forums.adobe.com/message/2100470#2100470 wrote a script and posted it after I started this thread. He mustn't have seen this latest one.

However, the script is not working yet, so until it is I'm still after a working script for which I'm happy to pay.

Translate
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 ,
Jul 14, 2009 Jul 14, 2009

Try to place Mark's script into the following folder:

Adobe InDesign CS4\Scripts\Scripts Panel\Version 3.0 Scripts

If it doesn't exist, create it – run the script from there (don't replace CS2 with CS4 in this case).

Translate
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
Engaged ,
Jul 15, 2009 Jul 15, 2009

No workee! Comes back with "Where is CS2?"

I don't know how to put this without causing upset, because I know users of this forum are only trying to help this dumb cluck. But, whoever would like to get paid for writing me a script, please gmail me at gdburns. I'm completely useless with scripts. A total 100% imbecile when it comes to scripts. I want to buy a script as per my PDF, because discussing scripts and moving them in and out of folders is beyond me.

I'm off to the other thread to close that down (as far as I'm concerned), so that I can concentrate on this one.

Translate
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
Guide ,
Jul 15, 2009 Jul 15, 2009

Posted back in the wrong thread so duplicated here for you or others to continue with.

Guy, you error sounds to me like the user has a rectangle selected and NOT the image inside of a rectangle. The script is absolute bare bones with zero error trapping. A rectangle has NO ppi property to return. It was the first time I've even taken a look inside of the InDesign AppleScript dictionary. I mostly use QuarkXPress but have recently started with ID so Im NO great shakes with either the GUI or scripting. The code is there for anybody to use or repurpose. The reason behind changing both the resolution & the dimensions is so you get the required EPPI in your image file. Just changing the resolution would have no effect and would merely change the bounds of the linked image which you would then need to re-scale & re-position and when you've done that the EPPI would be back where you started.

effective resolution = actual resolution * scale factor

The way in which I thought you would want this is to calculate new resolution whilst maintaining actual image bounds for less user work.
Does that make sense? I only needed to calculate and change the height or width because 'Constrain Proportions' is default

Translate
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
Engaged ,
Jul 15, 2009 Jul 15, 2009

Thanks Mark for the feedback. The script seems to work near perfectly, but I've yet to fully test it.

As I said, I'm pretty dopey when it comes to scripting, and you were right: I was selecting the image with the black pointer instead of the white one.

QUES 1

There's something I don't understand here. When I run through the process manually, and get to the change image resolution, I simply type in the new image resolution in Image > Image Size > Document Size > Resolution. I never touch anything else, and it works perfectly.

I just checked, and when I change the resolution, the Document Size doesn't change, but the Pixel Dimensions do. Which is exactly what I want. i.e the number of pixels changes, but the image dimensions (in inches) stays the same (otherwise, when linked to InDesign, the image will be the wrong size).

If I only need to change the resolution when I run through the process manually, why can't the script do the same? i.e just change resolution, and the pixels change in sympathy? Or doesn't scripting work that way?

In particular, your code says, in part:

resize image height (Image_Height * (300 / Resample))

Is that part necessary? Doesn't changing the resolution change the number of pixels automatically?

QUES 2

Your code says:

close with saving

But my Action (SHARPEN) ends with a save and a close. I assume I can safely remove "close with saving".

QUES 3

Lots of my images are behind others and I have to use Command-click to get to them, which doesn't work with the white pointer. i.e the contents are not selected. I have to go to Object > Select > Content. Is it possible to recode the start of the script so it does that automatically? i.e. always selects the contents of whatever is selected? No big deal if it's not possible. It would just slightly simplify matters.

Translate
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
Guide ,
Jul 15, 2009 Jul 15, 2009

Guy,

1. I have been back and checked and it appears that I can ignore re-calculating any of the dimensions just as long as a resample method is chosen. From a script point of view it could be left out but the result is the same image file bounds remain as were. Your replacement line could just be.

resize image resolution (Image_Res * (300 / Resample)) resample method bicubic smoother

2. add -- hyphen hyphen to the start of this line to comment out or just remove it.

3. You will get better advice in this forum on how to handle dealing with what you have selected in ID.

hope this helps.

Translate
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
Guide ,
Jul 15, 2009 Jul 15, 2009

Guy, this should be a bit nearer to what you require. Has a few checks that were not there before and will also allow you to select an images rectangle too. There are probably much better ways to do this but Im new & pushed for time…

tell application "Adobe InDesign CS2"

activate

tell active document

set Resample to ""

set This_Selection to get selection

try

if This_Selection ≠ {} then

if length of This_Selection ≠ 1 then

display dialog "You have more than 1 item seleted!!!" giving up after 2

else

if class of item 1 of This_Selection as text is "image" then

set This_Image to item 1 of This_Selection

end if

if class of item 1 of This_Selection as text is "rectangle" then

set This_Image to image 1 of item 1 of This_Selection

end if

set EPPI to effective ppi of item 1 of This_Image

set {Hoz_PPI, Vert_PPI} to {item 1 of EPPI, item 2 of EPPI}

if Hoz_PPIVert_PPI then

set Resample to Hoz_PPI

else

set Resample to Vert_PPI

end if

set Image_Path to file path of item link of (item 1 of This_Image) as alias

end if

else

display dialog "You have 0 items seleted!!!" giving up after 2

end if

if Resample ≠ "" then

my Resample_Image(Resample, Image_Path)

update item link of (item 1 of This_Image)

end if

on error

display dialog "This rectange contain NO image!!!" giving up after 2

end try

end tell

end tell

--

on Resample_Image(Resample, Image_Path)

tell application "Adobe Photoshop CS2"

set display dialogs to never

set User_Rulers to ruler units of settings

set ruler units of settings to pixel units

activate

open Image_Path

set ID_Image to the current document

tell ID_Image

set Image_Res to resolution

if Resample < 270 then

resize image resolution (Image_Res * (300 / Resample)) resample method bicubic smoother

end if

if Resample > 330 then

resize image resolution (Image_Res * (300 / Resample)) resample method bicubic sharper

end if

-- do action "Action Name String" from "Action Set Name String"

end tell

set ruler units of settings to User_Rulers

end tell

end Resample_Image

Translate
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
Engaged ,
Jul 15, 2009 Jul 15, 2009

Mark, your new version appears to work a treat, though I will be extensively testing it on a wide variety of images before I let it loose in my book.

Two minor points:

1. The image, after processing, is updated in InDesign, but the Links panel reports that it is not updated -- it has a little yellow triangle next to the image. It would appear that although InDesign did update the image, that updated info is not remembered by InDesign. Sounds like an InDesign problem.

2. At the end of the script I am still in PS. No problem whatsoever. I may change SHARPEN so I do stay in PS with the image open so that I can edit the image. But most of the time I would like to return to InDesign. I've tried putting:

tell application "Adobe InDesign CS4"

activate

end tell

or simply the command activate, before and after 'update link'; before the subroutine listing; at the end of the entire script; but I am always left with an error message. How do you make InDesign active at the end?

Finally, this Red LIon, is that in Knutsford? How often do you visit? Since you won't accept payment (I think you're underselling your skills), I'll contact the pub and arrange for a voucher for half a dozen pints, if that's possible. Take your mates down there and toast the 'script luddite' Tasmanian you've been helping.

Translate
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
Guide ,
Jul 16, 2009 Jul 16, 2009

Guy, as the script from a Photoshop point of view is no longer dealing with measurements you can get rid of changing the ruler settings. (using pixels is due to a bug in PS) In CS2 I do NOT get the yellow triangle warning the image is updated just fine. I do have the save command in my test script and NOT in the action may be you could try this. (not sure if the script is trying to do something before the action completes it's thing) How are you running the script? Is it loaded in the presets then you select an image or image containing box then double click to run the script? Here is what was last working just fine here…

tell application "Adobe InDesign CS2"

activate

tell active document

set Resample to ""

set This_Selection to get selection

try

if This_Selection ≠ {} then

if length of This_Selection ≠ 1 then

display dialog "You have more than 1 item seleted!!!" giving up after 2

else

if class of item 1 of This_Selection as text is "image" then

set This_Image to item 1 of This_Selection

end if

if class of item 1 of This_Selection as text is "rectangle" then

set This_Image to image 1 of item 1 of This_Selection

end if

set EPPI to effective ppi of item 1 of This_Image

set {Hoz_PPI, Vert_PPI} to {item 1 of EPPI, item 2 of EPPI}

if Hoz_PPIVert_PPI then

set Resample to Hoz_PPI

else

set Resample to Vert_PPI

end if

set Image_Path to file path of item link of (item 1 of This_Image) as alias

end if

else

display dialog "You have 0 items seleted!!!" giving up after 2

end if

if Resample ≠ "" then

my Resample_Image(Resample, Image_Path)

activate

-- delay 4

update item link of (item 1 of This_Image)

end if

on error

display dialog "This rectange contain NO image!!!" giving up after 2

end try

end tell

end tell

--

on Resample_Image(Resample, Image_Path)

tell application "Adobe Photoshop CS2"

activate

set display dialogs to never

open Image_Path

set ID_Image to the current document

tell ID_Image

set Image_Res to resolution

if Resample < 270 then

resize image resolution (Image_Res * (300 / Resample)) resample method bicubic smoother

end if

if Resample > 330 then

resize image resolution (Image_Res * (300 / Resample)) resample method bicubic sharper

end if

-- do action "Action Name String" from "Action Set Name String"

close with saving

end tell

end tell

end Resample_Image

Translate
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
Engaged ,
Jul 18, 2009 Jul 18, 2009

Mark, thanks for the updated script. It fixed the "not opening InDesign at the end" problem, but the un-updated link still remains in CS4. That's really not worth worrying about though.

I have removed save and close from the Action, and let the script do that (as per your suggestion). The script is located in a folder so that when I go to Window > Automation > Scripts the script appears. This is what happens when I double-click the script:

1. At the end of the process, InDesign is activated.

2. The image 'blinks' for a second or so (if the file size is large) while it is updated.

3. The image appears sharper, but the yellow rectangle appears in the Links panel.

4. If I zoom in, the image pixellates as if the image has NOT been updated.

5. If I zoom out to the original size, the image again appears sharpened.

6. If I update the link manually, everything is fine.

It would appear that InDesign is only updating the image that appears on the screen. Funny thing. There must be something not quite right about how CS4 interprets this line of the script:

update item link of (item 1 of This_Image)

Maybe CS4 is only updating the preview image that is contained within the document, and not updating and applying the altered link. Is that possible?Can the link be updated, but not applied?

Could the script force the issue by mimicking the manual process? In Pidgin Applescript it would be something like:

SELECT AND CLICK ON: Window > Links > Update Link

Translate
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 ,
Jul 18, 2009 Jul 18, 2009

I remember there is a problem in CS2/3 with updating links by script: a link is actually updated, but Links panel shows that it is modified. If you hide and show the Links panel, then it shows the link correctly. May be the same problem still remains in CS4.

Try to add a line at the end of the script that updates all modified links.

Kasyan

Translate
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
Guide ,
Jul 20, 2009 Jul 20, 2009

I have NO issues with the links panel. All is updated in CS2 fine so it could be something in CS3/4.

You could replace the line in question with:

set Modified_Images to every link whose status is link out of date

repeat with This_Image in Modified_Images

update This_Image

end repeat

Although I think the out come will be the same.

I don't know if there is any access to workspaces in CS4 to show/hide the links panel? If the issue is just with the GUI not refreshing properly then you could use system events to hide then show the links panel. By keystrokes d+comm+shift an ugly solution that would go like this:

tell application "Adobe InDesign CS2"

activate

my Hide_Show()

end tell

--

on Hide_Show()

tell application "System Events"

tell process "Adobe InDesign CS2"

keystroke "D" using {command down, shift down} -- Hide Links pallet

delay 0.5

keystroke "D" using {command down, shift down} -- Show Links pallet

end tell

end tell

end Hide_Show

You need to change system prefs to be able to do this BTW

Translate
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
Engaged ,
Jul 20, 2009 Jul 20, 2009

Mark, I think I'll settle for the script that leaves the link updated. Replacing the "update" line in your script with your newer version does all sorts of weird things. Computers amaze me how they can be so inventive.

1. I replaced the original "update" line with your newer version, and saved the script under a new name.

2. Clicked on the first image in my Test document and ran the script.

3. The second image was selected (not the first), it sharpened, and appeared to update.

4. Tried again -- the image that was processed was always the one after the selected image.

5. Other errors crept in: "no image selected"; resampling but not sharpening; not updating.

Amazing. You wouldn't believe the numerous permutations of errors that cropped up. So back I went and copied your  script from this site, pasted it into a blank script and away it went.

Maybe my computer was just playing games with me. Anyway, I'm sticking with the script that doesn't update. It works quite well.

I'm going to put all this into a PDF soon, explaining what has been created here, and then I'll start a new thread over in the InDesign forum introducing this great new script. Is it okay if I include your script (acknowledged of course) and make it available via Mediafire to whoever wants it? I'll make everything up into a zip package: script, SHARPEN, InDesign test file, and an explanatory PDF.

Translate
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
Engaged ,
Jul 20, 2009 Jul 20, 2009

Back again. I thought I'd better try rebooting OSX, tossing all scripts in Script Panel, reloading your script from scratch and including the new version of "update". When I did that and tried it on my Test file, the update worked.

I'll give the script a thorough workout tomorrow and let you know how it goes in CS4.

Translate
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
Guide ,
Jul 20, 2009 Jul 20, 2009

Glad you got something workable at least…

Credit 'anony mouse' don't be mentioning me… ha ha

Translate
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
Engaged ,
Jul 21, 2009 Jul 21, 2009
LATEST

Righto Mark, if you want another scripting challenge, sink your teeth into this one:

http://forums.adobe.com/thread/465884

Translate
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