/* ImageStudio ARexx script **************************************/ /* 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 /* get src files */ REQUEST_MULTIFILE TITLE '"Choose source files..."' STEM srcfiles. /* Loop around and convert all the files */ do l = 0 to (srcfiles.files.count - 1) /* Open the file */ OPEN FILE '"'srcfiles.files.l'"' FORCE /* Change colours to 16 shades from black to white */ COLOURS 16 PALETTE_GET STEM oldpal newpal='' do c=0 to 15 do i=0 to 2 newpal=newpal||' '17*c end end PALETTE_SET PALETTE newpal REMAP /* Create the output filename */ FILE_SPLIT FILE '"'srcfiles.files.l'"' STEM filesplit. filename=left(filesplit.filepart,index(filesplit.filepart,'.')-1) FILE_JOIN PATHPART '"'filesplit.pathpart'"', FILEPART '"'filename'.png"' VAR 'destfile' /* Save the fileout in the new format */ SAVE FILE '"'destfile'"' FORMAT 'PNG' FORCE 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