Jump to content


  • Content Count

  • Joined

  • Last visited

  1. Hi Guys, I'm quite new to alfred and automation in general, so I hope you'll bear with me. I'm trying to create a workflow, where a hotkey triggers an image (or selection of images) to be resized and then compressed either through the mac app "JPEGmini" or through "tinyPNG" online. I've divided this up into 4 steps that I'm trying to work on: Resize selection Determine whether it is a jpg/png If JPG compress on mac through JPEGmini If PNG compress online through tinyPNG So this is what I have so far: 1. Resize Image (code by Acidham, altered by ilium007) on alfred_script(target_width) set theCount to 0 set currSelection to {} tell application "Finder" set theSelection to selection end tell repeat with this_file in theSelection -- try to get a jpg or png try tell application "Finder" set myPath to POSIX path of (this_file as text) end tell tell application "Image Events" -- open the image file set this_image to open myPath -- get dimensions of the image copy dimensions of this_image to {W, H} -- calculate scale factor with given width and scale the image set scale_factor to target_width / W scale this_image by factor scale_factor save this_image in myPath close this_image -- get new image width and height for output set new_W to round (W * scale_factor) rounding as taught in school set new_H to round (H * scale_factor) rounding as taught in school set new_size to new_W & " x " & new_H end tell -- set the_return to (W & " x " & H & " → " & new_size) as text -- return the_return set theCount to theCount + 1 on error errStr number errorNumber return "No image file found!" end try end repeat return ("Processed " & theCount & " images") as text end alfred_script 2. Haven't worked on this yet. 3. JPEG compress with JPEGmini - Notification and set filePath on alfred_script(q) display notification with title "Optimising JPEG ..." subtitle "Path: " & (the clipboard as text) tell application "Finder" set theItems to selection set filePath to (POSIX path of (the selection as alias)) end tell end alfred_script - Copy file path to clipboard action through Alfred - Activate JPEGmini and use system events to open file through paste from clipboard on alfred_script(q) tell application "JPEGmini" to activate delay 2 tell application "System Events" keystroke "o" using command down keystroke "G" using {command down, shift down} keystroke "v" using {command down} keystroke return keystroke return end tell end alfred_script This is my first go with apple script and I don't think this is quite the right way to execute this. Namely, system events seems to be quite inefficient as I can only run a single image at a time. Ideally, I would like this part to run hidden and be able to compress all selected JPEGs once they have been resized. 4. PNG Compress online - Using carlosNZ's fantastic workflow for TinyPNG with custom API. CarlosNZ's Tiny PNG Workflow Ideally I would like to get this workflow to the point where, either a hotkey or keyword could be used on a selection of images that would be resized and run through either JPEGmini or TinyPNG depending on the file type. The resize and tiny png parts work, so I'm hoping to improve the JPEGmini flow and have a conditional if for jpg/png. Alternatively, just a better workflow for JPEGmini would be fine as I could run the resize/jpg/png workflows separately. The use case would be to quickly run web images through the process that are 1920 wide. I'm aware that with poor coding skill, this is an uphill battle, so all help is really appreciated. If anyone is interested in assiting, I would reimburse you for your time as well. Thanks alot
  • Create New...