How to non-permanently annotate images for use in WinExplorer
May 25, 2018 3:38 PM Subscribe
I'm looking for a way to non-permanently annotate images with text and hopefully shapes. If the annotations were view-able in windows explorer that'd be amazing.
Picasa allows image annotation but as now non-supported will eventually fail, so I need a replacement. I have also seen this used in Alienbrain http://www.alienbrain.com/ but it's expensive and a huge hammer for a tiny nut. I just want to do things like this dropbox.
Needs:
Windows 10, 64b, Desktop only and able to run without live weblink. I may want to run it via a server at some point tho'.
Non-subscription. Free would be nice but max of US$75 okay.
Reasonably tech savvy here but non-script-capable, I don't mind reg edits tho'.
I've looked at the following which came up in searches:
iphotodraw
A rapid way to have re-editable markups, but makes a new image to make result viewable in Explorer.
ratsnake
Appears to be an automatic annotation system only.
SIA
Something to do with pixel masks that I don't understand.
labelImg
Automatic annotation system only.
a.nnotate
Seems to be SAAS only or own server, don't think runs on the desktop, charges based on pages annotated plus annual fee.
vintasoft
Looks like being E129 per year but looks like it does to windows explorer. But whole site looks dated so I'm concerned about product.
Picasa allows image annotation but as now non-supported will eventually fail, so I need a replacement. I have also seen this used in Alienbrain http://www.alienbrain.com/ but it's expensive and a huge hammer for a tiny nut. I just want to do things like this dropbox.
Needs:
Windows 10, 64b, Desktop only and able to run without live weblink. I may want to run it via a server at some point tho'.
Non-subscription. Free would be nice but max of US$75 okay.
Reasonably tech savvy here but non-script-capable, I don't mind reg edits tho'.
I've looked at the following which came up in searches:
iphotodraw
A rapid way to have re-editable markups, but makes a new image to make result viewable in Explorer.
ratsnake
Appears to be an automatic annotation system only.
SIA
Something to do with pixel masks that I don't understand.
labelImg
Automatic annotation system only.
a.nnotate
Seems to be SAAS only or own server, don't think runs on the desktop, charges based on pages annotated plus annual fee.
vintasoft
Looks like being E129 per year but looks like it does to windows explorer. But whole site looks dated so I'm concerned about product.
Response by poster: Yes to "have a reduced picture with annotations in Explorer thumbnail view". As long as annotations were editable.
A single file to open with annotations would be good too, then I could network it and my contractor in Melbourne (or anywhere) could open it and add further notes and/or tick items as they were complete.
- I suppose I'm describing a ticketing system based on an image base, where people can pass comments and actions notes back and forth.
Just text would be fine as Picasa does - Picasa creates an unedited copy of the image and places it in a folder within the parent folder, along with an .ini file with a pointer to the original plus the annotations and code. about content, position and colors of annotations.
posted by unearthed at 3:43 PM on May 26, 2018
A single file to open with annotations would be good too, then I could network it and my contractor in Melbourne (or anywhere) could open it and add further notes and/or tick items as they were complete.
- I suppose I'm describing a ticketing system based on an image base, where people can pass comments and actions notes back and forth.
Just text would be fine as Picasa does - Picasa creates an unedited copy of the image and places it in a folder within the parent folder, along with an .ini file with a pointer to the original plus the annotations and code. about content, position and colors of annotations.
posted by unearthed at 3:43 PM on May 26, 2018
Yes to "have a reduced picture with annotations in Explorer thumbnail view".
Okay. That constraint means that the picture with annotations does have to exist as a simple picture file in a standard format like JPEG or PNG, because those are the only kind of picture files that Explorer will actually thumbnail.
So iphotodraw would work, given some reasonably convenient way to use one of its exported pictures to open an unedited original plus its annotations.
That's the kind of thing that can usually be accomplished fairly easily with small cmd scripts.
What I have in mind is a system whereby you can make a folder containing pictures annotatable by adding a small script file. You drag and drop any of the pictures onto the script; the script checks for a subfolder called Originals, creating it if it isn't already there; checks inside Originals for a picture with the same name as the one you've just dropped on it, copying the dropped picture into Originals if it's not already there; and opens the Originals copy in iphotodraw.
Once iphotodraw has opened, you add whatever annotations you want, then save them; that should make iphotodraw create its XML annotations file alongside the unedited picture inside Originals. Then you export the annotated result to the outer folder as a picture, overwriting the picture you originally dragged and dropped, at which point Windows will thumbnail it for you (it might be possible to script that step so that you don't have to do it explicitly; I'd have to play with iphotodraw to find out).
This implements essentially the same scheme that Picasa uses. The only important differences are that you use drag and drop instead of double-click to open a picture for editing; the Originals subfolder is visible rather than hidden (it would be possible to hide it, but I think that's unhelpful); and annotations are recorded in a visible XML file tucked away inside the Originals folder, rather than in a hidden INI file alongside the edited picture.
If this sounds like it would work for you, and you don't have the skills to write the script yourself, post back and I'll play with iphotodraw and write one for you.
posted by flabdablet at 4:20 AM on May 28, 2018
Okay. That constraint means that the picture with annotations does have to exist as a simple picture file in a standard format like JPEG or PNG, because those are the only kind of picture files that Explorer will actually thumbnail.
So iphotodraw would work, given some reasonably convenient way to use one of its exported pictures to open an unedited original plus its annotations.
That's the kind of thing that can usually be accomplished fairly easily with small cmd scripts.
What I have in mind is a system whereby you can make a folder containing pictures annotatable by adding a small script file. You drag and drop any of the pictures onto the script; the script checks for a subfolder called Originals, creating it if it isn't already there; checks inside Originals for a picture with the same name as the one you've just dropped on it, copying the dropped picture into Originals if it's not already there; and opens the Originals copy in iphotodraw.
Once iphotodraw has opened, you add whatever annotations you want, then save them; that should make iphotodraw create its XML annotations file alongside the unedited picture inside Originals. Then you export the annotated result to the outer folder as a picture, overwriting the picture you originally dragged and dropped, at which point Windows will thumbnail it for you (it might be possible to script that step so that you don't have to do it explicitly; I'd have to play with iphotodraw to find out).
This implements essentially the same scheme that Picasa uses. The only important differences are that you use drag and drop instead of double-click to open a picture for editing; the Originals subfolder is visible rather than hidden (it would be possible to hide it, but I think that's unhelpful); and annotations are recorded in a visible XML file tucked away inside the Originals folder, rather than in a hidden INI file alongside the edited picture.
If this sounds like it would work for you, and you don't have the skills to write the script yourself, post back and I'll play with iphotodraw and write one for you.
posted by flabdablet at 4:20 AM on May 28, 2018
I went ahead and did it anyway, just for fun. It seems to work pretty smoothly.
Open a new Notepad window and paste in the following:
Save it as annotate.cmd (in the Save As window, change the Save As Type from Text Documents (*.txt) to All Files before finally clicking the Save button, or you'll actually make annotate.cmd.txt which won't work).
Install iPhotoDraw. I've only tested this on a 32-bit installation of Windows. On a 64-bit edition, there's a chance that iPhotoDraw will end up installed inside C:\Program Files (x86) instead of C:\Program Files; if that happens, right-click on annotate.cmd and choose Edit, then alter the first line accordingly. If you then just use Save rather than Save As, you won't need to do the Save As Type dance again.
Make a copy of annotate.cmd inside any folder with pictures inside. Now drag one of the pictures and drop it onto annotate.cmd. You should find that a subfolder named Originals gets created inside, and that the picture you dragged and dropped gets moved inside that subfolder and then opened in iPhotoDraw.
Use iPhotoDraw to add some annotations, then choose File->Save, then choose File->Export and click OK in the Export Image dialog without changing anything else, then close iPhotoDraw. You should find that your original, unedited picture remains safely tucked away inside Originals, along with a corresponding XML file that describes your annotations. You should also find an exported, annotated picture in place of the original that you initially dragged and dropped, and that your annotations are visible in its thumbnail.
If you skip the Export step, you should find that your original, unedited picture simply moves back out of Originals and into its initial folder again, so you won't see annotations in its thumbnail; its corresponding XML file will however remain inside Originals, so if you drag and drop the picture back onto annotate.cmd again, all the annotations you applied in the first round will reappear.
Let me know how you get on.
posted by flabdablet at 6:43 AM on May 28, 2018 [1 favorite]
Open a new Notepad window and paste in the following:
set ipdraw="C:\Program Files\iPhotoDraw\iPhotoDraw.exe" if not exist %ipdraw% goto missing-ipdraw if not exist "%~f1" goto missing-picture mkdir "%~dp1Originals" if not exist "%~dp1Originals\%~nx1" move "%~f1" "%~dp1Originals\%~nx1" pushd "%~dp1Originals" %ipdraw% "%~dp1Originals\%~nx1" if exist "%~dp1Originals\%~n1_New%~x1" ( move /y "%~dp1Originals\%~n1_New%~x1" "%~f1" ) else ( if not exist "%~f1" move /y "%~dp1Originals\%~nx1" "%~f1" ) popd goto :eof :missing-ipdraw set msg=Can't find iPhotoDraw program at %ipdraw% goto error :missing-picture set msg=To use this script, drag and drop a picture onto it. :error cls @echo %msg% @pause
Save it as annotate.cmd (in the Save As window, change the Save As Type from Text Documents (*.txt) to All Files before finally clicking the Save button, or you'll actually make annotate.cmd.txt which won't work).
Install iPhotoDraw. I've only tested this on a 32-bit installation of Windows. On a 64-bit edition, there's a chance that iPhotoDraw will end up installed inside C:\Program Files (x86) instead of C:\Program Files; if that happens, right-click on annotate.cmd and choose Edit, then alter the first line accordingly. If you then just use Save rather than Save As, you won't need to do the Save As Type dance again.
Make a copy of annotate.cmd inside any folder with pictures inside. Now drag one of the pictures and drop it onto annotate.cmd. You should find that a subfolder named Originals gets created inside, and that the picture you dragged and dropped gets moved inside that subfolder and then opened in iPhotoDraw.
Use iPhotoDraw to add some annotations, then choose File->Save, then choose File->Export and click OK in the Export Image dialog without changing anything else, then close iPhotoDraw. You should find that your original, unedited picture remains safely tucked away inside Originals, along with a corresponding XML file that describes your annotations. You should also find an exported, annotated picture in place of the original that you initially dragged and dropped, and that your annotations are visible in its thumbnail.
If you skip the Export step, you should find that your original, unedited picture simply moves back out of Originals and into its initial folder again, so you won't see annotations in its thumbnail; its corresponding XML file will however remain inside Originals, so if you drag and drop the picture back onto annotate.cmd again, all the annotations you applied in the first round will reappear.
Let me know how you get on.
posted by flabdablet at 6:43 AM on May 28, 2018 [1 favorite]
I suppose I'm describing a ticketing system based on an image base, where people can pass comments and actions notes back and forth.
iPhotoDraw has a Snapshots feature that could be a good basis for this kind of workflow. See page 28 of the user manual.
This seems like very well-built software, especially given that it's a freebie from a single developer.
posted by flabdablet at 7:02 AM on May 28, 2018
iPhotoDraw has a Snapshots feature that could be a good basis for this kind of workflow. See page 28 of the user manual.
This seems like very well-built software, especially given that it's a freebie from a single developer.
posted by flabdablet at 7:02 AM on May 28, 2018
Response by poster: Hi flabdablet - that looks amazing! I have a site visit this morning so will try it out later today.
posted by unearthed at 1:56 PM on May 28, 2018
posted by unearthed at 1:56 PM on May 28, 2018
Here's a JScript version that does the same job. Save the following as annotate.js (again, this will require Save As Type to be set to All Files, or Notepad will create annotate.js.txt instead):
posted by flabdablet at 6:21 AM on May 29, 2018
ipdraw = "C:\\Program Files\\iPhotoDraw\\iPhotoDraw.exe" fs = new ActiveXObject("Scripting.FileSystemObject") sh = new ActiveXObject("WScript.Shell") if (!fs.FileExists(ipdraw)) { die("Can't find iPhotoDraw program at " + ipdraw) } try {pic = fs.getFile(WScript.Arguments(0))} catch(e) { die("To use this script, drag and drop a picture onto it.") } pathname = fs.GetAbsolutePathName(pic) folder = fs.GetParentFolderName(pic) name = fs.GetFileName(pic) base = fs.GetBaseName(pic) ext = fs.GetExtensionName(pic) originals = folder + "\\Originals" original = originals + "\\" + name exported = originals + "\\" + base + "_New." + ext try {fs.CreateFolder(originals)} catch(e) { if (!fs.FolderExists(originals)) { die("Can't make or find folder " + originals) } } // MoveFile fails if target already exists try {fs.MoveFile(pathname, original)} catch(e) {} sh.Run('"' + ipdraw + '" "' + original + '"', 1, true) if (fs.FileExists(exported)) { try {fs.DeleteFile(pathname)} catch(e) {} try {fs.MoveFile(exported, pathname)} catch(e) {} } try {fs.MoveFile(original, pathname)} catch(e) {} function die(message) { WScript.Echo(message) WScript.Quit(1) }
posted by flabdablet at 6:21 AM on May 29, 2018
The advantage of the .js version over the .cmd version is mainly just tidiness for the user: the .js version operates quietly, without popping up huge black console windows full of inscrutable runes that might frighten your contractor. Also, when the .js version needs to complain about something it will do so in a tidy little dialog box with an OK button.
Other than that, it works the same way: drag and drop a picture onto the script and it does Stuff.
posted by flabdablet at 6:27 AM on May 29, 2018
Other than that, it works the same way: drag and drop a picture onto the script and it does Stuff.
posted by flabdablet at 6:27 AM on May 29, 2018
Response by poster: HI Again, that's amazing how that works - I will keep exploring ways to use it. Yes iphoto did place itself in C:\Program Files (x86 but no problems there.
My contractor uses a mac - will this script run on her machine?
Also please check your memail
posted by unearthed at 10:39 PM on May 29, 2018
My contractor uses a mac - will this script run on her machine?
Also please check your memail
posted by unearthed at 10:39 PM on May 29, 2018
My contractor uses a mac - will this script run on her machine?
No. It would be easy enough to do a bash version that would, but there's no point; the iPhotoDraw application is Windows-only.
posted by flabdablet at 11:09 PM on May 29, 2018
No. It would be easy enough to do a bash version that would, but there's no point; the iPhotoDraw application is Windows-only.
posted by flabdablet at 11:09 PM on May 29, 2018
Inkscape is a powerful and well-regarded cross-platform editor for SVG images that's extremely unlikely to go away any time soon.
SVG, like the _data files iPhotoDraw uses, is an XML-based format that builds up an image from objects that all have a textual description. SVG files are also capable of containing bitmap images in formats like JPEG or PNG, either embedded inside the SVG file itself (tidy but space-inefficient) or linked from it.
Image components inside an SVG image retain their individuality and editability rather than merging themselves permanently into a bitmapped background, so if the Inkscape UI isn't too overwhelmingly general-purpose for you and your contractor, it ought to be possible to use it as your annotation tool. It would certainly be worth your while installing Inkscape on your own machine and having a play with it. If you open an existing JPEG image with Inkscape it will offer various ways to import it into a new SVG, after which you can scribble on it in all kinds of always-undoable ways.
You'd think that file browsers would thumbnail and preview SVG images as a matter of course, what with SVG being a well-established standards-compliant image format and all, but as far as I know neither Windows Explorer nor the Mac Finder can do it without having ill-supported third-party extensions installed first. But the same scripted workflow employed above for iPhotoDraw should be achievable for Inkscape without too much trouble, as should automating the initial image import step.
posted by flabdablet at 12:09 AM on May 30, 2018
SVG, like the _data files iPhotoDraw uses, is an XML-based format that builds up an image from objects that all have a textual description. SVG files are also capable of containing bitmap images in formats like JPEG or PNG, either embedded inside the SVG file itself (tidy but space-inefficient) or linked from it.
Image components inside an SVG image retain their individuality and editability rather than merging themselves permanently into a bitmapped background, so if the Inkscape UI isn't too overwhelmingly general-purpose for you and your contractor, it ought to be possible to use it as your annotation tool. It would certainly be worth your while installing Inkscape on your own machine and having a play with it. If you open an existing JPEG image with Inkscape it will offer various ways to import it into a new SVG, after which you can scribble on it in all kinds of always-undoable ways.
You'd think that file browsers would thumbnail and preview SVG images as a matter of course, what with SVG being a well-established standards-compliant image format and all, but as far as I know neither Windows Explorer nor the Mac Finder can do it without having ill-supported third-party extensions installed first. But the same scripted workflow employed above for iPhotoDraw should be achievable for Inkscape without too much trouble, as should automating the initial image import step.
posted by flabdablet at 12:09 AM on May 30, 2018
One more thing: SVG, as far as I know, has nothing built into it that's comparable to iPhotoDraw's snapshots. But SVG files are XML, and XML is text, and there are endless versioning packages available for managing text files.
posted by flabdablet at 12:14 AM on May 30, 2018
posted by flabdablet at 12:14 AM on May 30, 2018
Also worth thinking about: SVG images thumbnail and preview correctly on the Dropbox website, and Dropbox handles versioning to some extent as well as supporting collaboration comments. I would expect them to work similarly well on other collaboration platforms like Google Drive, and there are assorted online editors so you might not need to install anything on your own computers at all.
And although they don't have anything actually named "snapshots", they do have layers, which you could probably abuse for that purpose.
posted by flabdablet at 3:26 AM on May 30, 2018
And although they don't have anything actually named "snapshots", they do have layers, which you could probably abuse for that purpose.
posted by flabdablet at 3:26 AM on May 30, 2018
OK, here's a version of annotate.js that works with Inkscape. Both 64-bit and 32-bit Windows installers are available for Inkscape, and if you pick the one that matches your OS, Inkscape should install inside C:\Program Files rather than C:\Program Files (x86) and the script won't need tweaking.
This one operates slightly differently from the iPhotoDraw version because Inkscape doesn't have an inbuilt JPEG exporter; it can only export to PDF, which Windows Explorer won't thumbnail, or PNG which it will - but making a PNG out of a typical JPEG makes for quite a large file.
The compromise used here is to resize the annotated preview down to a maximum height or width of 640 pixels. This keeps its file size reasonable while still being detailed enough to keep Explorer's preview pane looking as nice as it ever would anyway.
This script also generates an initial SVG annotations file and an exported preview automatically, rather than relying on the user remembering to do extra steps in the editor UI. That means the preview will always exist, so the script doesn't ever move the original photo back out of Originals the way the iPhotoDraw version could sometimes do.
Have a play with this, and if you like it, I'll have a crack at a bash-based version for your contractor. This will be a little tricky to get right since I don't have a Mac to test it on, but let's see how we go.
posted by flabdablet at 12:26 PM on June 1, 2018
This one operates slightly differently from the iPhotoDraw version because Inkscape doesn't have an inbuilt JPEG exporter; it can only export to PDF, which Windows Explorer won't thumbnail, or PNG which it will - but making a PNG out of a typical JPEG makes for quite a large file.
The compromise used here is to resize the annotated preview down to a maximum height or width of 640 pixels. This keeps its file size reasonable while still being detailed enough to keep Explorer's preview pane looking as nice as it ever would anyway.
This script also generates an initial SVG annotations file and an exported preview automatically, rather than relying on the user remembering to do extra steps in the editor UI. That means the preview will always exist, so the script doesn't ever move the original photo back out of Originals the way the iPhotoDraw version could sometimes do.
Have a play with this, and if you like it, I'll have a crack at a bash-based version for your contractor. This will be a little tricky to get right since I don't have a Mac to test it on, but let's see how we go.
inkscape = "C:\\Program Files\\Inkscape\\inkscape.exe" fs = new ActiveXObject("Scripting.FileSystemObject") sh = new ActiveXObject("WScript.Shell") pic = new ActiveXObject("Wia.ImageFile") if (!fs.FileExists(inkscape)) { die("Can't find Inkscape program at " + q(inkscape)) } try { pathname = WScript.Arguments(0) file = fs.getFile(pathname) pic.LoadFile(pathname) width = pic.Width height = pic.Height } catch(e) { die("To use this script, drag and drop a picture onto it.") } pathname = fs.GetAbsolutePathName(file) folder = fs.GetParentFolderName(file) name = fs.GetFileName(file) base = fs.GetBaseName(file) ext = fs.GetExtensionName(file) originals = folder + "\\Originals\\" original = originals + name annotations = originals + base + " annotations.svg" preview = folder + "\\" + base + ".png" try {fs.CreateFolder(originals)} catch(e) { if (!fs.FolderExists(originals)) { die("Can't find or make folder " + q(originals)) } } if (!fs.FileExists(annotations)) try { fs.MoveFile(pathname, original) svg = fs.CreateTextFile(annotations, false, false) svg.Write([ '<?xml version="1.0" encoding="UTF-8" standalone="no"?>', '<svg', ' xmlns="http://www.w3.org/2000/svg"', ' xmlns:xlink="http://www.w3.org/1999/xlink"', ' version="1.1"', ' width=' + q(width), ' height=' + q(height), ' viewBox="0 0 ' + width + ' ' + height + '">', ' <image', ' width=' + q(width), ' height=' + q(height), ' preserveAspectRatio="xMidyMid meet"', ' xlink:href=' + q(name), ' />', '</svg>' ].join("\r\n")) svg.Close() } catch(e) { die("Can't find or make file " + q(annotations)) } sh.Popup("Launching Inkscape", 2, "Please wait", 64) sh.Run([ q(inkscape), q(annotations) ].join(" "), 1, true) sh.Run([ q(inkscape), "--export-png=" + q(preview), "--export-" + (width > height? "width": "height") + "=640", q(annotations) ].join(" "), 1, true) function q(string) { return '"' + string + '"' } function die(message) { WScript.Echo(message) WScript.Quit(1) }
posted by flabdablet at 12:26 PM on June 1, 2018
If you actually do need to export annotated pictures at original resolution in JPEG format, let me know; I think I can probably work out how to make the script do that instead of relying on the resized-PNG compromise.
posted by flabdablet at 12:40 PM on June 1, 2018
posted by flabdablet at 12:40 PM on June 1, 2018
Best answer: Having now found out more than I really wanted to know about WIA image filters, here's an Inkscape-based version of annotate.js that makes its annotated previews in the same size and file format as the originals.
posted by flabdablet at 1:48 PM on June 5, 2018 [1 favorite]
inkscape = "C:\\Program Files\\Inkscape\\inkscape.exe" ax = ActiveXObject fs = new ax("Scripting.FileSystemObject") sh = new ax("WScript.Shell") pic = new ax("WIA.ImageFile") ip = new ax("WIA.ImageProcess") if (!fs.FileExists(inkscape)) { die("Can't find Inkscape program at " + q(inkscape)) } try { pathname = WScript.Arguments(0) file = fs.getFile(pathname) pic.LoadFile(pathname) } catch(e) { die("To use this script, drag and drop a picture onto it.") } pathname = fs.GetAbsolutePathName(file) parent = fs.GetParentFolderName(file) name = fs.GetFileName(file) base = fs.GetBaseName(file) s = "\\" originals = parent + s + "Originals" try {fs.CreateFolder(originals)} catch(e) { if (!fs.FolderExists(originals)) { die("Can't find or make folder " + q(originals)) } } original = name preview = pathname for (e = new Enumerator(fs.GetFolder(originals).Files); !e.atEnd(); e.moveNext()) { if (base == fs.GetBaseName(e.item())) { original = fs.GetFileName(e.item()) preview = parent + s + original break } } origpath = originals + s + original try {fs.CopyFile(pathname, origpath, false)} catch(e) {} try {pic.LoadFile(origpath)} catch(e) { die("Can't open original picture " + q(origpath)) } annotations = originals + s + base + " annotations.svg" if (!fs.FileExists(annotations)) try { svg = fs.CreateTextFile(annotations, false, false) svg.Write([ '<?xml version="1.0" encoding="UTF-8" standalone="no"?>', '<svg', ' xmlns="http://www.w3.org/2000/svg"', ' xmlns:xlink="http://www.w3.org/1999/xlink"', ' version="1.1"', ' width=' + q(pic.Width), ' height=' + q(pic.Height), ' viewBox="0 0 ' + pic.Width + ' ' + pic.Height + '">', ' <image', ' width=' + q(pic.Width), ' height=' + q(pic.Height), ' preserveAspectRatio="xMidyMid meet"', ' xlink:href=' + q(original), ' />', '</svg>' ].join("\r\n")) svg.Close() } catch(e) { die("Can't find or make file " + q(annotations)) } sh.Run(q(inkscape) + " " + q(annotations), 1, true) temp = fs.GetSpecialFolder(2) + s + base + " " + fs.GetTempName() sh.Run(q(inkscape) + " -e " + q(temp) + " " + q(annotations), 1, true) ip.Filters.Add(ip.FilterInfos("Convert").FilterID) ip.Filters(1).Properties("FormatID").Value = pic.FormatID ip.Filters(1).Properties("Quality").Value = 95 pic.LoadFile(temp) pic = ip.Apply(pic) try {fs.DeleteFile(pathname)} catch(e) {} try {fs.DeleteFile(preview)} catch(e) {} pic.SaveFile(preview) fs.DeleteFile(temp) function q(string) { return '"' + string + '"' } function die(message) { WScript.Echo(message) WScript.Quit(1) }
posted by flabdablet at 1:48 PM on June 5, 2018 [1 favorite]
This thread is closed to new comments.
posted by flabdablet at 4:28 AM on May 26, 2018