; This is a test file for kate's PureBasic highlighting.
; BMP2x Converter by Sven Langenkamp
UseJPEGImageEncoder()
UsePNGImageEncoder()
Declare Convert(JPEG)
Enumeration 1
    #JPEG
    #PNG
EndEnumeration
; BEGIN section
; END
Global Count
Global file.s
Global filename.s
Global fileext.s
Global OutputFormat
Global JPEGQuality
Count        = 0
OutputFormat = 1
JPEGQuality  = -1
; MAIN PROGRAM------------------------------------------------------------------
;Request Options
PrintN("Output Format")
PrintN("  [1] JPEG")
PrintN("  [2] PNG")
Print ("> ")
OutputFormat = Int(Input())
Select OutputFormat
    Case #JPEG:
        fileext = ".jpg"
        ;Request JPEG Quality
        PrintN("")
        PrintN("JPEG Quality")
        PrintN("  [0-10]")
        Print ("> ")
        JPEGQuality = Int(Input())
    Case #PNG:
        fileext = ".png"
EndSelect
;Convert all BMP files in the current directory
ExamineDirectory(0, "", "*.bmp")
While NextDirectoryEntry()   
    file     = DirectoryEntryName()
    filename = GetFilePart(file)
    If LoadImage(0, file)
        Select OutputFormat
       Case #JPEG:
         Convert(JPEGQuality)
       Case #PNG:
           Convert(-1)
   EndSelect
   Count = Count +1
    EndIf
Wend
PrintN(Str(Count) + " files converted")
CloseConsole()
; PROCUDURES--------------------------------------------------------------------
Procedure Convert(JPEG)
    Shared filename, fileext
    If JPEG > -1
        SaveImage(0, filename + fileext, #PB_ImagePlugin_JPEG, JPEG)
    Else
        SaveImage(0, filename + fileext, #PB_ImagePlugin_PNG)    
    EndIf
    PrintN(file + " converted to " + filename + fileext)
EndProcedure