WinBatch Tech Support Home

Database Search

If you can't find the information using the categories below, post a question over in our WinBatch Tech Support Forum.

TechHome

Samples from Users

Can't find the information you are looking for here? Then leave a message over on our WinBatch Tech Support Forum.

Squash Images

 Keywords: ImgConvert Pixie compress files images save hard drive space

;==================================================================================================
; SQUASH-IMG.wbt  v3.0  2009-07-24                     (c)20090724.Joe Bybee, MCSE², MCP+I, CNA, A+
;==================================================================================================
;
; SQUASH-IMG by Joe Bybee, MCSE   December 2004, added command line option July 2009.
;
; Squash image was written to save hard drive space on servers because of newer cameras.
;
;
; I assume most digital cameras don't compress JPG images to reduce processing time
;
; allowing the camera to take more pictures faster.
;
; This program uses the Image Extender to open the JPG and then resave the JPG compressed.
;
; I usually see this program compress the files around 40 to 50% of original size, and retain
;
; the original image width, height, resolution, and bit depth.
;
;
; I have added a command line parameter feature for folders only.
;
; This way it can be scheduled to run on a server at night prior to a tape backup, to
;
; compress any additional pictures added that day.  This is why I inlcuded the
;
; attribute Archive Flag feature, to skip images that have already been squashed.
;
;
;
; I also have an option to not change the original modified date of the image, so that
;
; users can see when the image was modified last and, not the date it was squashed.
;
; If squashing really old pictures, why give them new dates.
;
;
; Command Line Usage: See param 1 thru 5 below
;
; Example: Squash-Img "s:\public\pics" 1 1 1 "*.jpg"
; Example: Squash-Img "s:\public\pics" 1 0 1 "*.jpg;*.bmp"
;
;  =============================================================================================
;
;VER_NUM="1.0" ; 2004-02-01 Creation.
;VER_NUM="2.0" ; 2007-09-14 Added Archive Flag feature to only compress new files.
;VER_NUM="2.5" ; 2007-09-25 Added Retain Original Dates.  Users complained they looked like new pictures.
VER_NUM="3.0"  ; 2009-07-24 Added command line option to run automatially with server scheduled events.
;
;
CR = Num2Char(13)                         ;13 is a carriage-return
LF = Num2Char(10)                         ;10 is a line feed
;
CR_LF="%CR%%LF%%CR%%LF%"
;
IntControl(49,3,0,0,0)   ; add Min-Max-Close to Dialog Boxes
;IntControl(33,0,0,0,0)   ; allows only 1 selection from Dialog Boxes
;
CURR_DIR=DirGet()
;
;
SKIP_DLG=0
;
; if commmand line driven, skip dialog box
;
If IsDefined(Param1) && IsDefined(Param2) && IsDefined(Param3) && IsDefined(Param4) && IsDefined(Param5) Then
   ;
   ;
   Display(10,"Launching SQUASH-IMG.exe",StrCat("Squash-Image Command Line Switches",CR_LF,"Path:  ",PARAM1,CR_LF,"Sub-Folders:   ",PARAM2,CR_LF,"Archive Flags:   ",PARAM3,CR_LF,"Retain Dates:   ",PARAM4,CR_LF,"File Types:   ",PARAM5))
   ;
   SKIP_DLG=1
   ;
   FILE_OR_FOLDER = 2 ; must be folder option for command line
   ;
   ;
   IMG_FOLDER=param1   ; param1 = Folder Path   (put in quotes to retain spaces)
   ;
   SUB_FOLDERS=param2  ; param2 = Recurse any sub-folders too ?   1 or 0
   ;
   ARCHIVE_ONLY=param3 ; param3 = Process Archive Flags ONLY ?    1 or 0
   ;
   ORG_DATE=param4     ; param4 = Retain Original Dates ?         1 or 0
   ;
   FILE_TYPES=param5   ; param5 = Image Types *.JPG;*.BMP;*.GIF   (semi-delimited)
   ;
   Goto SKIP_DLG
EndIf
;
;
;
;
;
; =============================================================================== DLG BOX
;
;
SQUASHFormat=`WWWDLGED,6.1`

SQUASHCaption=`Squash Image v%VER_NUM%      By: Joe Bybee, MCSE`
SQUASHX=-1
SQUASHY=-1
SQUASHWidth=188
SQUASHHeight=183
SQUASHNumControls=013
SQUASHProcedure=`SQUASH`
SQUASHFont=`DEFAULT`
SQUASHTextColor=`DEFAULT`
SQUASHBackground=`DEFAULT,DEFAULT`
SQUASHConfig=0

SQUASH001=`041,003,110,020,STATICTEXT,DEFAULT,"SQUASH IMAGE",DEFAULT,100,DEFAULT,"Times New Roman|13824|1070|18","0|0|255",DEFAULT`
SQUASH002=`009,025,166,052,GROUPBOX,DEFAULT,"CHOOSE FILE TYPE",DEFAULT,110,DEFAULT,"Arial|6656|70|34","0|0|0",DEFAULT`
SQUASH003=`023,037,080,012,RADIOBUTTON,FILE_OR_FOLDER,"SINGLE FILE(s)",1,5,DEFAULT,"Arial|8192|70|34","255|0|255",DEFAULT`
SQUASH004=`023,051,084,012,RADIOBUTTON,FILE_OR_FOLDER,"ENTIRE FOLDER",2,10,DEFAULT,"Arial|8192|70|34","255|0|255",DEFAULT`
SQUASH005=`051,061,090,012,CHECKBOX,SUB_FOLDERS,"INCLUDE SUB-FOLDERS",1,15,2,"Arial|6656|70|34","255|0|0",DEFAULT`
SQUASH006=`023,101,150,012,CHECKBOX,ORG_DATE,"Retain Original Modified Dates",1,25,DEFAULT,"Arial|6656|70|34","0|0|255",DEFAULT`
SQUASH007=`023,083,120,012,CHECKBOX,ARCHIVE_ONLY,"Process ARCHIVE Flags ONLY",1,20,DEFAULT,"Arial|6656|70|34","0|0|255",DEFAULT`
SQUASH008=`009,119,166,032,GROUPBOX,DEFAULT,"CHOOSE IMAGE FILTER",DEFAULT,120,DEFAULT,"Arial|6656|70|34","0|0|0",DEFAULT`
SQUASH009=`023,133,056,012,CHECKBOX,TYPE_JPG,"JPG",1,30,0,"Arial|7680|70|34","255|0|255",DEFAULT`
SQUASH010=`083,133,028,012,CHECKBOX,TYPE_BMP,"BMP",1,35,0,"Arial|7680|70|34","255|0|255",DEFAULT`
SQUASH011=`141,133,028,012,CHECKBOX,TYPE_GIF,"GIF",1,40,0,"Arial|7680|70|34","255|0|255",DEFAULT`
SQUASH012=`031,159,036,012,PUSHBUTTON,DEFAULT,"NEXT",1,45,32,DEFAULT,DEFAULT,DEFAULT`
SQUASH013=`113,159,036,012,PUSHBUTTON,DEFAULT,"CANCEL",0,50,DEFAULT,DEFAULT,DEFAULT,DEFAULT`
;
;ButtonPushed=Dialog("SQUASH")
;
;
TYPE_JPG=0
TYPE_BMP=0
TYPE_GIF=0
;
;
;
DLG_INIT = 0
DLG_TIMER = 1
DLG_PUSH = 2
DLG_RADIO = 3
DLG_CHECK = 4
DLG_EDIT = 5
DLG_LISTBOX = 6
DLG_ITEMBOX = 7
DLG_ITEMCHG = 8
DLG_DATECHG = 9
DLG_NUMCHG = 10
DLG_CLOSE = 11 ; requires Intcontrol(49,3,0,0,0)
;
DLG_STATE_FOCUS = 1
DLG_STATE_QUERY = 2
DLG_STATE_ADD = 3
DLG_STATE_REMOVE = 4
DLG_STATE_GETFOCUS = 5
;
DLG_HIDE = 1
DLG_DISABLE = 2
DLG_HIDE_DISABLE = 3
DLG_LOCK = 8
DLG_MASK = 16
DLG_ENTER = 32
DLG_DIGITS = 64
DLG_FLATBUTTON = 128
;
DLG_SET_CHKBOX = 1
DLG_SET_RADIO = 2
DLG_SET_EDITBX = 3
DLG_SET_TITLE = 4
DLG_SET_NEWLIST = 5
DLG_SET_HIGHLIGHT = 6
DLG_SET_CALENDAR = 7
DLG_SET_SPIN = 8
DLG_SET_TABSTOP = 9
DLG_SET_SCROLL = 10
DLG_SET_BKCOLOR = 11
DLG_SET_NEWBMP = 12
DLG_SET_TXTCOLOR = 13
DLG_SET_ADDLIST = 14
DLG_SET_RMVLIST = 15
;
;
;
#DefineSubRoutine SQUASH (DLG_HANDLE, EVENT_CODE, DLG_ID, 0, 0)
   ;
   Switch (EVENT_CODE)
      ;
      ; =============================
      ;
      Case DLG_INIT
         DialogProcOptions (DLG_HANDLE, DLG_TIMER, 0) ; 1000 = 1 second
         DialogProcOptions (DLG_HANDLE, DLG_PUSH, 1) ; 0 is off
         DialogProcOptions (DLG_HANDLE, DLG_RADIO, 1) ; 0 is off
         DialogProcOptions (DLG_HANDLE, DLG_CHECK, 0) ; 0 is off
         DialogProcOptions (DLG_HANDLE, DLG_EDIT, 0) ; 0 is off
         DialogProcOptions (DLG_HANDLE, DLG_LISTBOX, 0) ; 0 is off
         DialogProcOptions (DLG_HANDLE, DLG_ITEMBOX, 0) ; 0 is off
         DialogProcOptions (DLG_HANDLE, DLG_ITEMCHG, 0) ; 0 is off
         DialogProcOptions (DLG_HANDLE, DLG_DATECHG, 0) ; 0 is off
         DialogProcOptions (DLG_HANDLE, DLG_NUMCHG, 0) ; 0 is off
         DialogProcOptions (DLG_HANDLE, DLG_CLOSE, 0) ; 0 is off
         ;
         ;DialogControlSet(DLG_HANDLE, 005 DLG_SET_CHKBOX, 0) ; sets checkbox to unchecked     005 SUB FOLDERS
         DialogControlSet(DLG_HANDLE, 006, DLG_SET_CHKBOX, 1) ; sets checkbox to checked       006 ORG_DATE
         DialogControlSet(DLG_HANDLE, 007, DLG_SET_CHKBOX, 1) ; sets checkbox to checked       006 ARCHIVE ONLY
         DialogControlSet(DLG_HANDLE, 009, DLG_SET_CHKBOX, 1) ; sets checkbox to checked       009 TYPE_JPG
         DialogControlSet(DLG_HANDLE, 003, DLG_SET_RADIO, 1) ; sets RADIO to checked           003 TYPE_JPG
         ;DialogControlSet(DLG_HANDLE, 010, DLG_SET_CHKBOX, 0) ; sets checkbox to unchecked    010 TYPE_BMP
         ;DialogControlSet(DLG_HANDLE, 011, DLG_SET_CHKBOX, 0) ; sets checkbox to unchecked    011 TYPE_GIF
         ;
         ;
      Return(-1)
      ;
      ; =============================
      ;
      ;case DLG_TIMER
      ;   Return(-1)
        ;
      ; =============================
      ;
      Case DLG_PUSH    ; <-------- PUSH BUTTON
         ;
         ;Display(3,"DLG_PUSH","Inside DLG_PUSH")
         If DLG_ID==013 Then                           ; if CANCEL button
             Exit
         EndIf
         ;
         If DLG_ID==012 Then                           ; if SEND button
            ;
            ORG_DATE=DialogControlGet(DLG_HANDLE, 006, DLG_SET_CHKBOX) ; get value selected from 006  ORG_DATE
            ARCHIVE_ONLY=DialogControlGet(DLG_HANDLE, 007, DLG_SET_CHKBOX) ; get value selected from 007  ATTRIB_ONLY
            ;
            TYPE_JPG=DialogControlGet(DLG_HANDLE, 009, DLG_SET_CHKBOX) ; get value selected from 009  TYPE_JPG
            TYPE_BMP=DialogControlGet(DLG_HANDLE, 010, DLG_SET_CHKBOX) ; get value selected from 010  TYPE_BMP
            TYPE_GIF=DialogControlGet(DLG_HANDLE, 011, DLG_SET_CHKBOX) ; get value selected from 011  TYPE_GIF
            ;
            ;Display(5,"DLG_ID=001","Inside DLG_ID=001")
            ;Display(3,"JPG  BMP &  GIF",strcat(TYPE_JPG,"   ",TYPE_BMP,"    ",TYPE_GIF))
            ;
            If TYPE_JPG==0 && TYPE_BMP==0 && TYPE_GIF==0 Then
               Display(3,"Error","  You must SELECT an IMAGE FILTER.  ")
            EndIf
            ;
            If TYPE_JPG==1 || TYPE_BMP==1 || TYPE_GIF==1 Then
               Return(2)
            EndIf
         EndIf
         ;
         ;
      Return(-2)
      ;
      ; =============================
      ;
      Case DLG_RADIO
         ;
         If DLG_ID==004 Then
            DialogControlState(DLG_HANDLE, 005, DLG_STATE_REMOVE, DLG_HIDE_DISABLE) ; 4=REMOVE disabled on Sub Folders Check Box
         EndIf
         ;
         If DLG_ID==003 Then
            DialogControlSet(DLG_HANDLE, 005, DLG_SET_CHKBOX, 0) ; sets checkbox to unchecked       005 SUB FOLDERS
            DialogControlState(DLG_HANDLE, 005, DLG_STATE_ADD, DLG_DISABLE) ; 3=ADD  1=invisible, 2=disabled, 3=both
         EndIf
      Return(-1)
      ;
      ; =============================
      ;
      Case DLG_CHECK
         ;
         ;DialogControlState(DLG_HANDLE, 041, 4, 2) ; remove invisible style on Check Box
         ;
      Return(-1)
      ;
      ; =============================
      ;
      ;case DLG_EDIT
      ;   Return(-1)
      ;
      ; =============================
      ;
      ;case DLG_LISTBOX
         ;
      ;Return(-1)
      ;
      ; =============================
      ;
      ;case DLG_ITEMBOX
         ;
         ;if DLG_ID==004 then
         ;   CONT_PICK=DialogControlGet(DLG_HANDLE, 004, 6) ; get value selected from 004.
         ;endif
         ;
      ;Return(-1)
      ;
      ; =============================
      ;
      ;case DLG_ITEMCHG
             ; Display(2,"SELECTED",INI_SECT)
         ;iniReadPvt (section, keyname, default, filename)
         ;
         ;DialogControlState(DLG_HANDLE, 019, 3, 2) ; remove invisible style on Check Box
         ;
      ;Return(-1)
      ;
      ; =============================
      ;
      ;case DLG_DATECHG
      ;   Return(-1)
      ;
      ; =============================
      ;
      ;case DLG_NUMCHG
      ;   Return(-1)
      ;
      ; =============================
      ;
      Case DLG_CLOSE
         Return(-1)
   ;
   EndSwitch ; EVENT_CODE
   ;
Return(-1)
;
#EndSubRoutine
;
; ==================================================================================================================== END FUNCTION
;
; ==================================================================================================================== END FUNCTION
;
;
ButtonPushed=Dialog("SQUASH")
;
FILE_TYPES=""
;
If TYPE_JPG == 1 Then
   FILE_TYPES=StrCat(FILE_TYPES,"*.jpg;")
   FILE_FILTERS=StrCat(FILE_TYPES,"JPEG FILES|*.jpg|")
EndIf
;
If TYPE_GIF == 1 Then
   FILE_TYPES=StrCat(FILE_TYPES,"*.gif;")
   FILE_FILTERS=StrCat(FILE_TYPES,"GIF FILES|*.gif|")
EndIf
;
If TYPE_BMP == 1 Then
   FILE_TYPES=StrCat(FILE_TYPES,"*.bmp;")
   FILE_FILTERS=StrCat(FILE_TYPES,"BMP FILES|*.bmp|")
EndIf
;
;
;
;
:SKIP_DLG
;
;
;
If StrSub(FILE_TYPES, StrLen(FILE_TYPES), 1) == ";" Then
   FILE_TYPES=StrSub(FILE_TYPES,1,StrLen(FILE_TYPES)-1) ; remove trailing delimeter
EndIf
;
;Display(5,"FILE_TYPES",FILE_TYPES)
;
SUCCESS_CT=0
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;    ==============================================================================================;
;                        SINGLE FILE(S) ONLY
;    ==============================================================================================
;
;
;
AddExtender("WWIMG44I.DLL")
;
If FILE_OR_FOLDER == 1 Then ; <------- Individual Files
   ;
   ;       AskFileName(title, directory, filetypes, default filename, flag) 0=Save  1=Open  2=Open Multiple  3=Save no replace
   ;
   IMG_FOLDER=AskDirectory("SELECT or PASTE   FOLDER PATH", "", "","",1|2|4|8)
   ;
   IMG_FILE=AskFilename("SELECT IMAGE(s)  -  hold CTRL to pick Multiples",IMG_FOLDER,FILE_FILTERS,"CTRL PICK IMAGES",2)
   ;
   ;
   ;
   IMG_CT=ItemCount(IMG_FILE,@TAB)
   ;
   If IMG_CT != 0 Then
      BoxOpen(" IMAGE CONVERT ","  CONVERTING.... ")
   EndIf
   ;
   ;
   ;
   For LOOP_CT = 1 To IMG_CT
      ;
       CURR_IMG=ItemExtract(LOOP_CT,IMG_FILE,@TAB)
      ;
      IMG_DATE_MOD=FileTimeGetEx(CURR_IMG, 2) ;       1 file created      2 file last modified      3 file last accessed
      ;
      IMG_ATTRIBS=FileAttrGet(CURR_IMG)
      ;
      IS_ARCHIVE=0
      ;
      If StrSub(IMG_ATTRIBS, 2, 1) == "A" Then
         IS_ARCHIVE=1
      EndIf
      ;
      SQUASH_IT = 1
      ;
      If ARCHIVE_ONLY==1 && IS_ARCHIVE == 1 Then
         SQUASH_IT = 1
      EndIf
      ;
      ;
      If ARCHIVE_ONLY==1 && IS_ARCHIVE == 0 Then
         SQUASH_IT = 0
      EndIf
      ;
      ;
      ;
      ;
      ;
      If SQUASH_IT == 1 Then
         ;
         ;
         BOX_TEXT=StrCat("Processing File(s):  ",SUCCESS_CT+1,CR_LF,"Current Folder:%CR%%LF%",FilePath(CURR_IMG),CR_LF,"Current File:%CR%%LF%",FileBaseName(CURR_IMG,0))
             ;
             BoxText(BOX_TEXT)
         ;
         ErrorMode(@OFF)
         IMG_SUCCESS=ImgConvert(CURR_IMG, CURR_IMG) ; <---- CONVERT
         ErrorMode(@CANCEL)
         ;
         ;
         ;
         If ORG_DATE == 1 Then
            ;
            FILES_THERE=FileExist(CURR_IMG)
            ;
            While FILES_THERE <> 1
               TimeDelay(0.5)
               FILES_THERE=FileExist(CURR_IMG)
            EndWhile
            ;
            FileTimeSetEx(CURR_IMG, IMG_DATE_MOD, 2) ;     1 file created      2 file last modified      3 file last accessed
            ;
         EndIf
         ;
         If IMG_SUCCESS==0 Then
            ;
            IMG_ERROR=ItemExtract(ItemCount(CURR_IMG,"\"),CURR_IMG,"\")
            Display(10,"CONVERT ERROR",StrUpper(StrCat("   ", IMG_ERROR,"  MIGHT BE CORRUPT OR ANIMATED IMAGE. CONVERT FAILED.  CONTINUING....  ")))
            ;
            SUCCESS_CT=SUCCESS_CT-1
         EndIf
         ;
         SUCCESS_CT=SUCCESS_CT+1
      EndIf ; if SQUASH_IT
      ;
   Next LOOP_CT
   ;
   BoxShut()
   DONE_TXT=StrCat("  SQUASHED  ", SUCCESS_CT, "  OF  ", IMG_CT, "  FILES SUCCESSFULLY.  %CR%%LF%%CR%%LF%WinBatch, Gotta Love It !%CR%%LF%")
   ;
   Display(12," SQUASH IMAGE                  By: Joe Bybee, MCSE  ",DONE_TXT)
   ;
   ;
   Exit
EndIf ;  if File
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;    ==============================================================================================
;                        ENTIRE FOLDER AND/OR SUB FOLDERS
;    ==============================================================================================
;
;
;
;
If FILE_OR_FOLDER == 2 Then ; <------- Entire Folder
   ;
   ; AskDirectory(prompt, browse-root, start-dir, confirm-prompt, flags) 1=EDIT BOX   2=DIR MISSING BOX   4=LARGER BOX   8=New Folder Button  16=Suppress Drive Errors
   ;
   If SKIP_DLG != 1 Then
      IMG_FOLDER=AskDirectory("SELECT or PASTE   FOLDER PATH", "", "","",1|2|4|8)
   EndIf
   ;
   ;
   If SUB_FOLDERS==1 Then
      SRCH_FLAG=48 ; recurse sub-folders AND return directory names
     Else
        SRCH_FLAG=32 ; return directory names only
   EndIf
   ;
   ;
   SUCCESS_CT=0
   ;
   AddExtender("wsrch34i.dll")
   ;
   IMG_CT=ItemCount(FILE_TYPES,";")
   ;
   ;
   TOTAL_FILES=0;
   ;
   For LOOP_CT = 1 To IMG_CT
      ;
       EXT_LOOP=ItemExtract(LOOP_CT,FILE_TYPES,";")   ; I had a brain fart
      ;
      IMG_HANDLE=SrchInit(IMG_FOLDER, EXT_LOOP, "", "", SRCH_FLAG)
      ;
      BoxOpen("IMAGE FINDER",StrUpper("INITIALIZING %EXT_LOOP%"))
      ;
      TimeDelay(2)
      ;
      ; ================================================= while loop
      ;
      While 1
         ;
         ;
           CURR_IMG=SrchNext(IMG_HANDLE)
         ;
         If CURR_IMG=="" && SUCCESS_CT==0 Then
            TOTAL_FILES=0
         EndIf
         ;
           If CURR_IMG=="" Then Break
         ;
         If StrSub(CURR_IMG,StrLen(CURR_IMG),1) == "\" Then Continue  ; eliminate Sub Folder Processing with \ on the end
         ;
         ;
         IMG_DATE_MOD=FileTimeGetEx(CURR_IMG, 2) ;       1 file created      2 file last modified      3 file last accessed
         ;
         IMG_ATTRIBS=FileAttrGet(CURR_IMG)
         ;
         TOTAL_FILES=TOTAL_FILES+1
         ;
         IS_ARCHIVE=0
         ;
         If StrSub(IMG_ATTRIBS, 2, 1) == "A" Then
            IS_ARCHIVE=1
         EndIf
         ;
         SQUASH_IT = 1
         ;
         If ARCHIVE_ONLY==1 && IS_ARCHIVE == 1 Then
            SQUASH_IT = 1
         EndIf
         ;
         ;
         If ARCHIVE_ONLY==1 && IS_ARCHIVE == 0 Then
            SQUASH_IT = 0
         EndIf
         ;
         ;
         If SQUASH_IT == 1 Then
            ;
              BOX_TEXT=StrCat("Processing File(s):  ",SUCCESS_CT+1,CR_LF,"Current Folder:%CR%%LF%",FilePath(CURR_IMG),CR_LF,"Current File:%CR%%LF%",FileBaseName(CURR_IMG,0))
                ;
                BoxText(BOX_TEXT)
            ;
            ErrorMode(@OFF)
            ;
            IMG_SUCCESS=ImgConvert(CURR_IMG,CURR_IMG) ; <-------- CONVERT
            ;
            ErrorMode(@CANCEL)
            ;
            ;
            ;
            If ORG_DATE == 1 Then
               ;
               FILES_THERE=FileExist(CURR_IMG)
               ;
               While FILES_THERE <> 1
                  ;
                  TimeDelay(0.5)
                  FILES_THERE=FileExist(CURR_IMG)
               EndWhile
               ;
               FileTimeSetEx(CURR_IMG, IMG_DATE_MOD, 2) ;     1 file created      2 file last modified      3 file last accessed
               ;
            EndIf
            ;
            If IMG_SUCCESS==0 Then
               ;
               IMG_ERROR=ItemExtract(ItemCount(CURR_IMG,"\"),CURR_IMG,"\")
               Display(10,"CONVERT ERROR",StrUpper(StrCat("   ", IMG_ERROR," MIGHT BE CORRUPT OR ANIMATED IMAGE. CONVERT FAILED.  CONTINUING....  ")))
               ;
               SUCCESS_CT=SUCCESS_CT-1
            EndIf
            ;
              SUCCESS_CT=SUCCESS_CT+1
            ;TimeDelay(0.5)
            ;
         EndIf
         ;
      EndWhile
      ;
      ; ================================================= END while loop
      ;
      BoxShut()
      SrchFree(IMG_HANDLE)
      ;
   Next LOOP_CT
   ;
   DONE_TXT=StrCat("  SQUASHED  ", SUCCESS_CT, "  OF  ", TOTAL_FILES, "  FILES SUCCESSFULLY.  %CR%%LF%%CR%%LF%WinBatch, Gotta Love It !%CR%%LF%")
   ;
EndIf
;
;
Display(10," SQUASH IMAGE                  By: Joe Bybee, MCSE  ",DONE_TXT)
;
;
TimeDelay(1)
;
Exit

Article ID:   W17634
Filename:   Squash Images.txt
File Created: 2014:01:29:15:34:52
Last Updated: 2014:01:29:15:34:52