All software listed on this webpage is free to use. Some have their source code available for modification, while others provide only the executable, possibly accompanied by DLLs. If the source code is not available, it is likely because the software is part of a larger project that will evolve into a product in the future.

IDK Parser is a Windows command-line tool that lets you check IDK files, view error messages, and convert them into HTML files. It can generate a valid HTML website; in fact, this very website was built using it.
This command-line program will convert PNG and JPEG files to selected targets. It uses available threads and SIMD for image manipulation and compression.
It retrieves details about the original image file and converted images, written to a file_name.metadas file, which can be used to fill a database, for example.
It has no real limitation about the image resolution it can convert, the limitation comes from the STB library which set it to very, uncommon resolution.
In my project, I needed a fast image converter that runs on a light computer (1 vCPU and 1 GB RAM). I was not happy with the poor performance of Go image packages and decided to create one in C using STB image. STB is very simple source code; it uses SIMD, and you can tweak it enough to fit your project. I wanted to try out if the gain was real. Results were better and promising.
Being simple, it means that PNG images are not well compressed (uses zlib). To counter that, the program uses libdeflate source code, which compresses PNG files better but not as effectively as several PNG libraries.
It is unable to produce a 16-bit per channel image, which is uncommon, but it will decode it and produce the 8-bit per channel equivalent.
If not provided, the program uses the default target, but you can change that by modifying the targets.kn file.
STB_image.h, STB_resize2.h, STB_write.h, and libdeflate (for PNG compression).
Windows and Linux.
The program is able to know when a file is not fully present (while moving/copying state) and will wait until it does.
in="path_folder_image_in" OPTIONAL: the program will listen to the folder and process image conversion as it finds files.out="path_folder_image_out" OPTIONAL: folder path where the converted images will be placed. Default is ./out, creating it if missing.targets="path_custom_targets" OPTIONAL: file path of custom image targets (conversion). Otherwise, default ones are used.thread=number OPTIONAL: override the default: normally the program base the thread count from the logical core count.image_processor_alpha_win64 in="./my_folder_path_in" out="my_folder_path_out" targets="my_file_targets_path" thread=2.image_processor_alpha_win64 in="./my_folder_path_in".The program is currently in alpha and may break in certain situations. This is a first version, and work must be done before calling it production-ready. I personally use it on a project, though.
Work needs to be done to make it a bit more performant. When multithreading is available, the performance is good enough, but on a single-core CPU it can be improved.
Best_Compression on image targets, which will emphasize smaller file size over visual quality.| Language | Files | Lines | Code | Comments | Blanks |
|---|---|---|---|---|---|
| C | 90 | 35117 | 27856 | 3939 | 3322 |
| C Header | 101 | 47495 | 34404 | 7038 | 6053 |
| Total | 191 | 82612 | 62260 | 10977 | 9375 |
Note that a lot of code is duplicated (for example different channel count bitmap) and we did not clean useless code. This is the first draft and LOC can be improved a lot, consequently file size.