/* ImageStudio ARexx script - to convert pics to a 86x128 greyscale */ /* Allow commands to return results */ options results /* On error, goto ERROR:. Comment out this line if you wish to */ /* perform your own error checking. */ signal on error /* BEGIN PROGRAM *************************************************/ /* Warn the user if they are about to overwrite their current project */ IMAGEINFO_GET STEM imageinfo. if imageinfo.changed == 1 then REQUEST_MESSAGE TEXT '"Project has changed, continue?"', BUTTONTEXT '"OK|Cancel"' AUTOCANCEL /* Choose source files */ REQUEST_MULTIFILE TITLE '"Choose source files..."' STEM srcfiles. /* Use separate destination directory ? */ REQUEST_MESSAGE TEXT '"Use different destination directory?"', BUTTONTEXT '"Yes|No|Cancel"' AUTOCANCEL if result == 1 then REQUEST_DIR TITLE '"Choose destination directory..."' VAR destdir else destdir = ':NONE:' REQUEST_MESSAGE TEXT '"Dither inages?"' BUTTONTEXT '"Yes|No|Cancel"', AUTOCANCEL if result == 1 then ditherarg = 'DITHER "FS"' else ditherarg = '' REQUEST_MESSAGE TEXT '"Rename filenames ?"' BUTTONTEXT, '"Yes|No|Cancel"' AUTOCANCEL if result == 1 then do /* Set the rename files */ renamefiles = 1 /* Get the rename pattern */ REQUEST_STRING TEXT1 '"Choose the filename extension. For"', TEXT2 '"example: . .ILBM would rename all"', TEXT3 '"files to .ILBM, see docs for more info"', STRING '". .'||saveformat.string||'"', VAR renamestring end else renamefiles = 0 /* If we're renaming, we should ask if they want the source file */ /* deleted. If we're not renaming, we should warn the user that */ /* the source file will be overwritten. */ if renamefiles == 1 then do REQUEST_MESSAGE TEXT '"Delete source files ?"', BUTTONTEXT '"Yes|No|Cancel"' AUTOCANCEL if result == 1 then deletesource = 1 else deletesource = 0 end else if renamefiles == 0 & destdir == ':NONE:' then REQUEST_MESSAGE TEXT '"WARNING : Source files will\nbe overwritten."', BUTTONTEXT '"OK|Cancel"' AUTOCANCEL /* Loop around and convert all the files */ do l = 0 to (srcfiles.files.count - 1) /* Open the file */ OPEN FILE '"'srcfiles.files.l'"' FORCE /* Create the output filename */ if destdir ~= ':NONE:' then do /* Get the filepart of the source filename */ FILE_SPLIT FILE '"'srcfiles.files.l'"' STEM filesplit. /* Create the destfile */ FILE_JOIN PATHPART '"'destdir'"', FILEPART '"'filesplit.filepart'"' VAR 'destfile' end else destfile = srcfiles.files.l /* Rename file ? */ if renamefiles == 1 then FILE_RENAME FILE '"'destfile'"' renamestring, VAR 'destfile' /* Save the fileout in the new format */ SCALE X 86 Y 128 PALETTE_LOAD FILE '"palettes/grey.pal"' ditherarg PALETTE_LOAD FILE '"palettes/reko.pal"' SAVE FILE '"'destfile'"' /* Delete source file (and icon) if required */ if renamefiles == 1 & deletesource == 1 then do /* Make sure hasn't been renamed to same name */ if upper(srcfiles.files.l) == upper(destfile) then break address command 'delete NIL: "'||srcfiles.files.l||'"' if exists(srcfiles.files.l||'.info') == 1 then address command 'delete NIL: "'||, srcfiles.files.l||'.info"' end end /* END PROGRAM ***************************************************/ exit /* On ERROR */ ERROR: /* If we get here, either an error occurred with the command's */ /* execution or there was an error with the command itself. */ /* In the former case, rc2 contains the error message and in */ /* the latter, rc2 contains an error number. SIGL contains */ /* the line number of the command which caused the jump */ /* to ERROR: */ if datatype(rc2,'NUMERIC') == 1 then do /* See if we can describe the error with a string */ select when rc2 == 103 then err_string = "ERROR 103, "||, "out of memory at line "||SIGL when rc2 == 114 then err_string = "ERROR 114, "||, "bad command template at line "||SIGL when rc2 == 115 then err_string = "ERROR 115, "||, "bad number for /N argument at line "||SIGL when rc2 == 116 then err_string = "ERROR 116, "||, "required argument missing at line "||SIGL when rc2 == 117 then err_string = "ERROR 117, "||, "value after keywork missing at line "||SIGL when rc2 == 118 then err_string = "ERROR 118, "||, "wrong number of arguments at line "||SIGL when rc2 == 119 then err_string = "ERROR 119, "||, "unmatched quotes at line "||SIGL when rc2 == 120 then err_string = "ERROR 120, "||, "line too long at line "||SIGL when rc2 == 236 then err_string = "ERROR 236, "||, "unknown command at line "||SIGL otherwise err_string = "ERROR "||rc2||", at line "||SIGL end end else if rc2 == 'RC2' then do err_string = "ERROR in command at line "||SIGL end else do err_string = rc2||", line "||SIGL end request_message TEXT '"'err_string'"' exit