I'd be happy to beta-test. You can PM me about arrangements, or we can talk in this thread.
Why don't we talk here. I just don't want to put the beta up on DFFD until it's tested.
Tileset Resizer v3.0 Beta - Instructions (Beta)First I need to know some information about your computer for beta testing.1. What Operating System are you using?
2. How many cores/threads does you processor have?
3. What version of Octave are you using?
4. What version of hqx are you using (1.0 or 1.1)?
5. What tileset are you resizing (so I know what to test with to try and reproduce problems)?
When you use Tileset Resizer I need you to do two things for me.
1. The Beta version outputs some debugging information in Octave, please copy and paste the Octave output here even if you don't have any problems so I can see how well it works for you.
2. If you do run into a problem tell me and I will give you a version with
full debug output to try. It has a lot of terminal output so I don't want to start with that version because it makes it slower.
You will need
Octave,
hqx, and from Octave Forge the
image and
general packages.
If you use Window or Mac operating systems you can get installers for Octave at
Octave Forge.Follow the instructions in the readme in the first post on how to install them, the general package is new and installs the same way as the image package.
----Download Tileset Resizer v3.0-Beta Here----Here are some instructions for using the new features in v3.0. I haven't written the readme yet so if these don't make sense just ask me for help.
--NOTE--The functions still have their development filenames (so I can tell the versions apart) so they will need to be called by those names in octave.
Mostly this means that the old functions have a "2" on the end (for now) to indicate the can be called by the batch processing functions.
resize_tileset_hqx_tilebytile2_split_MT_Beta is the multithreaded version of resize_tileset_hqx_tilebytile
a new input variable has been added to resize_tileset_hqx_tilebytile2_Split_MT_Beta to specify how many threads to use.
This is the last input variable given.
Valid inputs are
-1 = multithreading disabled
0 = try to automatically choose a sane number of threads to use
1 to number of hardware threads = this many threads will be used
Use of more threads than hardware threads is disabled right now as it most likely will be slower and more buggy.
Here is an example of a correct call of the function.
resize_tileset_hqx_tilebytile2_split_MT_Beta('Phoebus_16x16','png',16,16,24,24,'spline',0)
resize_tileset_hqx_tilebytile2 is the old version with some improvements and bug fixes
The other three previous function have added improvements and bug fixes but but are otherwise the same.
New Functionsdelete_bg_color2Replaces a specified rgb color in an image file with black and adds/edits the alpha layer to make pixels of the specified color transparent.
Only png and bmp files are valid for Dwarf_Fortress but tiff files also support an alpha layer.
Solves the bug from this postThe standard purple/magenta background seen in tilesets is R=255 G=0 B=255.
Here is an example of a correct call of the function.
delete_bg_color2('hexed_12x12','bmp',255,0,255)
delte_bg_color_batchBatch processes all files of the specified type using delete_bg_color2
Only png and bmp files are valid for Dwarf_Fortress but tiff files also support an alpha layer.
Here is an example of a correct call of the function.
delete_bg_color_batch('bmp',255,0,255)
tileset_resizer_batchBatch process all image files of the specified file type with the specified Tileset Resizer Function with given inputs.
All tilesets being process must have the same original tilesize.
These are the defined inputs
tileset_resizer_batch(file_type,x_tile,y_tile,tile_x_size,tile_y_size,interp,fun_sel,mt_select=-1)
And their definitions
# file_type is the file type to process
# x_tile is the width of a single tile measured in pixels
# y_tile is the height of a single tile measured in pixels
# tile_x_size = width in pixels to resize the tiles to. ex. 24
# tile_y_size = height in pixels to resize the tiles to. ex. 24
# interp can be ('nearest','linear','bilinear','cubic','bicubic','pchip','spline') spline, cubic, or bicubic should give the best results for hqx functions, nearest is recomened for the other two functions
# fun_sel selects which tileset resizer function to use 1 = resize_tileset, 2 = resize_tileset_tilebytile, 3 = resize_tileset_hqx, 4 = resize_tileset_hqx_tilebytile
# mt_select determines if multithreading will be used for resize_tileset_hqx_tilebytile (-1 to not use multithreading), if it is used it determines how many thereads to use
Here is an example of a correct call of the function for a tileset that started with 16 pixel by 16 pixel tiles to resize them to 24 pixel to 24 pixel tiles.
tileset_resizer_batch('png',16,16,24,24,'spline',4,0)
All tilesets to be processed at the same time must have the same pixel dimension tiles (all 16 pixel by 16 pixel tiles).
tileset_resizer_batch can process tilesets with different tile dimensions (ex. the standard 16x16 grid tileset and a say 12x36 creature tileset both with 16 pixel by 16 pixel tiles).
Update: Windows users -- Multithreading Does Not Work In Windows --Multithreading does not works on Windows machines due to pipe not working (breaks the multithreading kludge that is used to get around octaves single threadedness).
Calls should be made like this to instruct Tileset Resizer to use the single threaded version of resize_tileset_hqx_tilebytile.
resize_tileset_hqx_tilebytile2_split_MT_Beta('Phoebus_16x16','png',16,16,24,24,'spline')
tileset_resizer_batch('png',16,16,24,24,'spline',4)
I can't fix this myself as I did not write the multithreading framework I am using (parcellfun() from the general package from Octave Forge) and it is what is broken on Windows.
If anyone know how to fix the problem let me know and I will see what I can do to make it work on Windows.
More information can be found in this post.All other functions are not called directly by the user so they do not require instructions.
If you have any questions just ask me.