    ; 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