I'm putting this here so that it can be seen by people who might use it. However if a mod or admin thinks it fits better elsewhere feel free to move it.
GFXtract is a script-powered graphics converter I made. That is, people can make scripts to convert specific formats to PNG images. This was made to eliminate the need to make a separate program for every different format. The scripts are also much easier to write and share than a whole program; you just write instructions, and GFXtract does the heavy lifting.
Some people might recognise this to be similar to QuickBMS - and that's exactly the point. I made this because I thought "wow QuickBMS is so convenient, I wish there was something like it for graphics". While QuickBMS can technically be used for graphics conversion, it's designed for archive extraction. I have seen some scripts that convert stuff to DDS images, but they're often very bloated with heaps of byte-level activity. GFXtract is supposed to be to image conversion what QuickBMS to archive extraction; you read information from the file, and then tell the program where the data is and to convert it.
The script syntax is also heavily based on QuickBMS. If you're familiar with writing BMS scripts, GSL (GFXtract Scripting Language) should be fairly straightforward to pick up.
How to use (copied from the readme):
There are two ways you can use GFXtract. The first way is to simply double-click on the executable.
A file selection dialogue will pop up to choose the script to use, then one for the input files, and
finally one for the output folder. It will then process the script on each of the files.
The second method is to use the command-line. This is the command-line usage for GFXtract:
Similar to the first method, it processes the script on the selected file, or the files in the
folder selected. Generally this is only recommended if you are familiar with using the command-line,
otherwise the first method is usually sufficient (however I do plan to eventually add extra options
that will only be available via command-line).
Download
You can download GFXtract on GitHub. You can also view or download the source code if that interests you.
That's the formal part of this post done. I wanna lay down some notes though.
First off this is in very early stages. It can break if you mess around with it or write buggy scripts. I do intend to eventually write some better error handling but for the time being it'll probably give you cryptic messages if you mess something up. You can post them here if you need help.
Also, a LOT of features are missing. You can still suggest things if you want, feedback is always good, but at this point there's a heap of things that I have planned so I might have already thought of it. You can check the biggest things I intend to add next in the README.md here.
Pixel reading in particular is still very primitive. It can read paletted or non-paletted images, with a range of bit-depths, but I have yet to implement tiled images or palettes. I also need to add if statements and loops, for those formats that are a bit more complex.
Anyway, I'm glad this has finally gotten to a point I can release and share it with people. Hopefully it will help save time and effort for some people.
Any questions, comments, complaints, whatever, feel free to post them here or PM me.
GFXtract is a script-powered graphics converter I made. That is, people can make scripts to convert specific formats to PNG images. This was made to eliminate the need to make a separate program for every different format. The scripts are also much easier to write and share than a whole program; you just write instructions, and GFXtract does the heavy lifting.
Some people might recognise this to be similar to QuickBMS - and that's exactly the point. I made this because I thought "wow QuickBMS is so convenient, I wish there was something like it for graphics". While QuickBMS can technically be used for graphics conversion, it's designed for archive extraction. I have seen some scripts that convert stuff to DDS images, but they're often very bloated with heaps of byte-level activity. GFXtract is supposed to be to image conversion what QuickBMS to archive extraction; you read information from the file, and then tell the program where the data is and to convert it.
The script syntax is also heavily based on QuickBMS. If you're familiar with writing BMS scripts, GSL (GFXtract Scripting Language) should be fairly straightforward to pick up.
How to use (copied from the readme):
There are two ways you can use GFXtract. The first way is to simply double-click on the executable.
A file selection dialogue will pop up to choose the script to use, then one for the input files, and
finally one for the output folder. It will then process the script on each of the files.
The second method is to use the command-line. This is the command-line usage for GFXtract:
Code:
Usage: GFXtract <script> <inFile> [outDir]
script - The .gsl script containing the instructions for converting.
inFile - The file to convert. Can also be a directory containing the files to convert.
outDir - Optional, the directory to place the converted files in. If omitted, the directory of the input files is used.
Similar to the first method, it processes the script on the selected file, or the files in the
folder selected. Generally this is only recommended if you are familiar with using the command-line,
otherwise the first method is usually sufficient (however I do plan to eventually add extra options
that will only be available via command-line).
Download
You can download GFXtract on GitHub. You can also view or download the source code if that interests you.
That's the formal part of this post done. I wanna lay down some notes though.
First off this is in very early stages. It can break if you mess around with it or write buggy scripts. I do intend to eventually write some better error handling but for the time being it'll probably give you cryptic messages if you mess something up. You can post them here if you need help.
Also, a LOT of features are missing. You can still suggest things if you want, feedback is always good, but at this point there's a heap of things that I have planned so I might have already thought of it. You can check the biggest things I intend to add next in the README.md here.
Pixel reading in particular is still very primitive. It can read paletted or non-paletted images, with a range of bit-depths, but I have yet to implement tiled images or palettes. I also need to add if statements and loops, for those formats that are a bit more complex.
Anyway, I'm glad this has finally gotten to a point I can release and share it with people. Hopefully it will help save time and effort for some people.
Any questions, comments, complaints, whatever, feel free to post them here or PM me.