Users browsing this thread: 1 Guest(s)
GFXtract
#1
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:

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.

You should be aware that while this now has some error handling, scripts can still easily become buggy and break if you don't understand the syntax properly. If you need help with figuring out what's wrong, feel free to ask.
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.

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.
You may have a fresh start any moment you choose, for this thing that we call "failure" is not the falling down, but the staying down. -Mary Pickford
Reply
#2
I tried compiling it on Mac OS X 10.11 El Capitan and it fails on Line 7 because Type not found : systools.Dialogs

Nevertheless sounds very interesting and I would like to dig deeper into this as soon as possible. Trying with WINE as soon as I get home.
Once there was a way to get back homeward
Reply
Thanked by:
#3
Oh right, you'll need the systools library. You'll also need OpenFL (and Lime) and format. Just install them through haxelib.

Thanks for pointing this out, I'll add the dependencies for compiling to README.
You may have a fresh start any moment you choose, for this thing that we call "failure" is not the falling down, but the staying down. -Mary Pickford
Reply
Thanked by:
#4
Could you give me some building pointers too? I installed all the deps via command line but I don't really understand the build syntax. No matter what I do it always whines about things starting with a lower case letter or a upper case letter..

you, probably Wrote:But how did you get that line 7 error?!
i can't remember

you, confused Wrote:but that was like 2 hours ago
i know   Ouch!
Once there was a way to get back homeward
Reply
Thanked by:
#5
Not sure what kind of errors you're getting, but I use FlashDevelop (Windows only, unfortunately) and this seems to be the build command it uses:

Code:
haxe -lib openfl -lib lime -lib format -lib systools -cp <path to src folder> -neko <path to output folder>/GFXtract.n -main Main

That builds a .n file, which is Neko bytecode. You can convert it to a native binary using:

Code:
nekotools boot GFXtract.n

Hopefully it works the same on Mac as it does on Windows.
You may have a fresh start any moment you choose, for this thing that we call "failure" is not the falling down, but the staying down. -Mary Pickford
Reply
Thanked by:
#6
We should try to create a page to give out each script. Perhaps on the wiki? That way they won't be spread around a lost like most bms scripts?

Because this thing is a genius concept. Very nice!
Tsunami Bomb - The Simple Truth
We could run away
Leave behind anything paper
Not knowing where we're going to stay
When there's no Mondays

You're part of me, it's so easy to see the simple truth
When I'm in your arms, I feel safe from harm and sorrow too
You're part of me, it's so easy to see the simple truth
But most of all, nothing couldn't be solved when I'm with you
Reply
Thanked by: puggsoy, SuperFlomm
#7
Thanks Genki ^_^

The wiki is a good idea. I'm storing all of mine in the Dropbox folder I linked to, but it'd be good to have a nice collection of everyone's on the site. Would it be better to store them somewhere and have a list of links, or to post the actual scripts in the article (in spoilers, if possible)?
You may have a fresh start any moment you choose, for this thing that we call "failure" is not the falling down, but the staying down. -Mary Pickford
Reply
Thanked by:
#8
I'd imagine just post the scripts on the site itself - it's easier for people to upload them, but also because it allows people to read them pretty easily.
Tsunami Bomb - The Simple Truth
We could run away
Leave behind anything paper
Not knowing where we're going to stay
When there's no Mondays

You're part of me, it's so easy to see the simple truth
When I'm in your arms, I feel safe from harm and sorrow too
You're part of me, it's so easy to see the simple truth
But most of all, nothing couldn't be solved when I'm with you
Reply
Thanked by:
#9
Does anybody have some tiled image files that I can use? I'd like some to use for testing when I implement tiled reading.
You may have a fresh start any moment you choose, for this thing that we call "failure" is not the falling down, but the staying down. -Mary Pickford
Reply
Thanked by:
#10
(01-13-2016, 03:11 AM)puggsoy Wrote: Thanks Genki ^_^

The wiki is a good idea. I'm storing all of mine in the Dropbox folder I linked to, but it'd be good to have a nice collection of everyone's on the site. Would it be better to store them somewhere and have a list of links, or to post the actual scripts in the article (in spoilers, if possible)?

I think that it would be beneficial to create a tutorial on writing and using the scripts for this, and then there post the scripts. I know with the QuickBMS thread, in the third post, I have all the links to mine and other developer's scripts hosted there. It keeps it nice and clean for the users of the program to just download and quickly some scripts to rip some content. Anyways, thanks for making this tool! I'm sure that it will be helpful to anyone trying to rip some graphics. (+1 for basing it off of QuickBMS dude)
Reply
Thanked by: puggsoy
#11
I definitely will make a tutorial, once I've added a couple more things. I also think that's a good place to store scripts, since I can't seem to find anything akin to spoiler or code tags on the wiki.
You may have a fresh start any moment you choose, for this thing that we call "failure" is not the falling down, but the staying down. -Mary Pickford
Reply
Thanked by:


Forum Jump: