Tileset Resizer v2.5
Resize Tilesets For Larger or Smaller Monitors
Tileset Resizer is a collection of Octave (http://www.gnu.org/software/octave/) Functions to resize Dwarf Fortress tilesets with minimum loss of quality.
Octave is a high-level interpreted language, primarily intended for numerical computations and is a free alternative to MATLAB.
Octave is required to use Tileset Resizer and is available for Windows, Mac, and Linux.
The Image package from Octave Forge (http://octave.sourceforge.net/) is also required to to use Tileset Resizer.
hqx (http://code.google.com/p/hqx/) is required to use resize_tileset_hqx and resize_tileset_hqx_tilebytile.
The Windows executable installer is for Octave 3.4.3 and has been tested to work.
Octave 3.2.4 which is over a year old (current version is 3.4.x). The oct2mat package included in this installer has a bug which prevents Octave from reading image files.
-> Tileset Resizer functions now detect incompatible packages (oct2mat) and deactivate them automatically. <-
See the readme for detailed setup instructions.
Download
DFFD (http://dffd.wimbli.com/file.php?id=4542)
Experimental multithreading of resize_tileset_hqx_tilebytile has been added in v3.0 along with batch processing functions.
If you want to help by beta testing Tileset Resizer v3.0 the instructions for doing so are in this post (http://www.bay12forums.com/smf/index.php?topic=87196.msg2948923#msg2948923)
I still need someone to beta test v3.0 on a Mac before I can make a preliminary release.
The multithreading of resize_tileset_hqx_tilebytile does not work on Windows right now and won't unless someone can help me with it. (http://www.bay12forums.com/smf/index.php?topic=87196.msg3017249#msg3017249)
As of now multithreading should work in any linux distro but has only been tested in Ubuntu 11.04 for now.
Tileset Resizer allows the use of several more methods to resize tilesets to fit your monitor than are available in Dwarf Fortress.
Four different resizing methods are included in Tileset Resizer. Each is run by calling a different function in Octave.
1. resize_tileset is the simplest and fastest resizing function, but it produces the most errors when resizing. It resizes the whole tileset at once.
2. resize_tileset_tilebytile breaks the tileset up into its individual tiles and resizes them individually before recombining them again. This is slower than resize_tileset but produces better results.
3. resize_tileset_hqx resizes the tileset using the hqx resizing algorithm. The results of this resizing method are significantly different than those from resize_tileset. This method resizes the whole tileset at once.
4. resize_tileset_hqx_tilebytile breaks the tileset up into its individual tiles and resizes them individually with the hqx resizing algorithm before recombining them again. This function is significantly slower than the others.
resize_tileset_hqx and resize_tileset_hqx_tilebytile use the hqx resizing algorithm which was written to upsize pixel art.
Notes
All Tileset Resizer functions can now resize RGB images as well as RGB+Alpha images. resize_tileset and resize_tileset_tilebytile also support grayscale images.
Dwarf Fortress enforces a hardcoded display of a minimum of 80 tiles in the horizontal direction.
Because of this the maximum tile size (in pixels) that can be displayed on a monitor is calculated the following way.
Maximum Tile Size = (Monitor Horizontal Resolution In Pixels)/80
See Reply 10 (http://www.bay12forums.com/smf/index.php?topic=87196.msg2582949#msg2582949) for more information.
Example Results
Ironhand 0.57 (http://www.bay12forums.com/smf/index.php?topic=53180.0)
Original 18x18 Tiles
(http://i.imgur.com/Qc6Nt.png)
Resize To 24x24 Tiles With resize_tileset_tilebytile interp='nearest'
(http://fc08.deviantart.net/fs71/f/2011/245/2/d/ih_v2_5_tbyt_24x24_by_arclance-d48mtd2.png)
Resize to 24x24 Tiles With resize_tileset_hqx_tilebytile interp='spline'
(http://fc07.deviantart.net/fs70/f/2011/245/6/9/ih_v2_5_hqx_tbyt_24x24_by_arclance-d48mtln.png)
Phoebus 0.31.25v23 (http://www.bay12forums.com/smf/index.php?topic=57557.0)
Original 16x16 Tiles
(http://img.ie/28a2a.png)
Resize To 24x24 Tiles With resize_tileset interp='nearest'
(http://fc07.deviantart.net/fs71/f/2011/245/1/b/p_0_31_25v23_v2_5_24x24_by_arclance-d48mu5o.png)
Resize To 24x24 Tiles With resize_tileset_tilebytile interp='nearest'
(http://fc05.deviantart.net/fs70/f/2011/245/5/1/p_0_31_25v23_v2_5_tbyt_24x24_by_arclance-d48mube.png)
Resize To 24x24 Tiles With resize_tileset_hqx interp='spline'
(http://fc01.deviantart.net/fs70/f/2011/245/2/2/p_0_31_25v23_v2_5_hqx_24x24_by_arclance-d48muhb.png)
Resize to 24x24 Tiles With resize_tileset_hqx_tilebytile interp='spline'
(http://fc04.deviantart.net/fs70/f/2011/245/d/9/p_0_31_25v23_v2_5_hqx_tbt_24_by_arclance-d48mumw.png)
Resize to 45x45 Tiles With resize_tileset_hqx_tilebytile interp='spline'
(http://fc06.deviantart.net/fs71/f/2011/245/2/4/p_0_31_25v23_v2_5_hqx_tbt_45_by_arclance-d48muqp.png)
Phoebus 0.31.25v23 Beefmo Unit Dwarves (http://www.bay12forums.com/smf/index.php?topic=57557.0)
Original 16x16 Tiles
(http://images57.fotki.com/v512/photos/9/1792449/9840158/dorfs_original-vi.png)
Resize To 24x24 Tiles With resize_tileset interp='nearest'
(http://fc08.deviantart.net/fs71/f/2011/245/c/c/bd_v23_v2_5_24x24_by_arclance-d48mxen.png)
Resize to 24x24 Tiles With resize_tileset_tilebytile interp='nearest'
(http://fc04.deviantart.net/fs71/f/2011/245/3/8/bd_v23_v2_5_tbyt_24x24_by_arclance-d48mxkp.png)
Resize to 24x24 Tiles With resize_tileset_hqx interp='spline'
(http://fc01.deviantart.net/fs71/f/2011/245/5/3/bd_v23_v2_5_hqx_24x24_by_arclance-d48mxq7.png)
Resize to 24x24 Tiles With resize_tileset_hqx_tilebytile interp='spline'
(http://fc01.deviantart.net/fs70/f/2011/245/d/3/bd_v23_v2_5_hqx_tbyt_24x24_by_arclance-d48mxve.png)
Resize to 45x45 Tiles With resize_tileset_hqx_tilebytile interp='spline'
(http://fc01.deviantart.net/fs71/f/2011/245/7/5/bd_v23_v2_5_hqx_tbyt_45x45_by_arclance-d48mxzy.png)
Mayday v31_25_a (http://www.bay12forums.com/smf/index.php?topic=53649.0)
Original 16x16 Tiles
(http://i.imgur.com/pqjjj.png)
Resize To 24x24 With resize_tileset_tilebytile interp='nearest'
(http://fc03.deviantart.net/fs71/f/2011/245/f/8/m_32_25_a_v2_5_tbyt_24x24_by_arclance-d48mvff.png)
Resize to 24x24 Tiles With resize_tileset_hqx_tilebytile interp='spline'
(http://fc03.deviantart.net/fs71/f/2011/245/a/1/m_32_25_a_v2_5_hqx_tbyt_24x24_by_arclance-d48mvlv.png)
Mayday v31_25_e (http://www.bay12forums.com/smf/index.php?topic=53649.0)
Original 16x16 Tiles
(http://fc04.deviantart.net/fs71/f/2012/030/3/3/mayday_v31_25_e___original_16x16_by_arclance-d4o4g6d.png)
Resize To 24x24 With resize_tileset_tilebytile interp='nearest'
(http://fc02.deviantart.net/fs71/f/2012/030/8/3/mayday_v31_25_e___tilebytile_24x24_by_arclance-d4o4gus.png)
Resize to 24x24 Tiles With resize_tileset_hqx_tilebytile interp='spline'
(http://fc09.deviantart.net/fs71/f/2012/030/0/e/mayday_v31_25_e___hqx_tilebytile_24x24_by_arclance-d4o4gin.png)
yokomeshi 12x12 tileset (http://www.bay12forums.com/smf/index.php?topic=88598.0)
Original 12x12 Tiles
(http://i.imgur.com/73Nzs.png)
Resize To 24x24 With resize_tileset interp='nearest'
(http://fc06.deviantart.net/fs71/f/2011/245/f/e/y_v2_5_24x24_by_arclance-d48mw6o.png)
Resize To 24x24 With resize_tileset_tilebytile interp='nearest'
(http://fc09.deviantart.net/fs70/f/2011/245/8/c/y_v2_5_tbyt_24x24_by_arclance-d48mwbz.png)
Resize To 24x24 With resize_tileset_hqx interp='spline'
(http://fc03.deviantart.net/fs70/f/2011/245/0/a/y_v2_5_hqx_24x24_by_arclance-d48mwh4.png)
Resize To 24x24 With resize_tileset_hqx_tilebytile interp='spline'
(http://fc03.deviantart.net/fs70/f/2011/245/7/c/y_v2_5_hqx_tbyt_24x24_by_arclance-d48mwlr.jpg)
Vherid Tileset/Colorscheme (ASCII+) (http://www.bay12forums.com/smf/index.php?topic=89856.15)
Original 12x12 Tiles
(http://i.imgur.com/Bwzrr.png)
Resize To 24x24 With resize_tileset_tilebytile interp='nearest'
(http://fc02.deviantart.net/fs71/f/2011/245/8/9/v_v2_5_tbyt_24x24_by_arclance-d48mwx8.png)
Resize To 24x24 With resize_tileset_hqx_tilebytile interp='spline'
(http://fc00.deviantart.net/fs71/f/2011/245/0/b/v_v2_5_hqx_tbyt_24x24_by_arclance-d48mx2e.jpg)
Interpolation Methods & Final Sizes Comparison
Follow Link and Click Download Image to See Fullsize Due to Extreme Image Size
resize_tileset (http://sta.sh/0emmpjnaaqe)
resize_tileset_tilebytile (http://sta.sh/0d0skljlidl)
resize_tileset_hqx (http://sta.sh/08nfgkkvx5o)
resize_tileset_hqx_tilebytile (http://sta.sh/018a2xtekmg5)
Screenshots
!!Warning Very Large Images!!
Phoebus 0.31.25v23 With Beefmo Units Original Size (16x16)
(http://fc02.deviantart.net/fs70/f/2011/248/9/4/p_0_31_25v23_v2_5_16_screen_by_arclance-d48zp33.png)
Phoebus 0.31.25v23 With Beefmo Units Resized to 24x24 Tiles With resize_tileset interp='nearest' (v2.5)
(http://fc08.deviantart.net/fs70/f/2011/249/f/6/p_0_31_25v23_v2_5_24_screen1_by_arclance-d4920kr.png)
Phoebus 0.31.25v23 With Beefmo Units Resized to 24x24 Tiles With resize_tileset_tilebytile interp='nearest' (v2.5)
(http://fc04.deviantart.net/fs71/f/2011/249/3/8/p_0_31_25v23_v2_5_24_screen2_by_arclance-d4920qp.png)
Phoebus 0.31.25v23 With Beefmo Units Resized to 24x24 Tiles With resize_tileset_hqx interp='spline' (v2.5)
(http://fc02.deviantart.net/fs71/f/2011/249/9/5/p_0_31_25v23_v2_5_24_screen3_by_arclance-d4920ut.png)
Phoebus 0.31.25v23 With Beefmo Units Resized to 24x24 Tiles With resize_tileset_hqx_tilebytile interp='spline' (v2.5)
(http://fc08.deviantart.net/fs71/f/2011/248/0/3/p_0_31_25v23_v2_5_24_screen_by_arclance-d48zpm2.png)
Phoebus 0.31.25v23 With Beefmo Units Resized to 20x20 Tiles With resize_tileset_hqx_tilebytile interp='spline' (v2.5)
(http://fc09.deviantart.net/fs70/f/2011/249/1/8/p_0_31_25v23_v2_5_20_screen4_by_arclance-d4920zf.png)
Phoebus 0.31.25v22 With Beefmo Units Resized to 45x45 Tiles With resize_tileset_hqx_tilebytile interp='spline' (v2.0)
(http://fc09.deviantart.net/fs70/f/2011/186/1/a/v2_0_45x45_hqx_tilebytile_by_arclance-d3l27fg.png)
Ironhand 0.57 Original Size (18x18)
(http://fc06.deviantart.net/fs71/f/2011/248/f/c/ih_0_57_v2_5_18_screen_by_arclance-d48zqau.png)
Ironhand 0.57 Resized to 24x24 Tiles With resize_tileset_hqx_tilebytile interp='spline' (v2.5)
(http://fc09.deviantart.net/fs71/f/2011/248/c/4/ih_0_57_v2_5_24_screen_by_arclance-d48zqjw.png)
Mayday v31_25_a Original Size (16x16)
(http://fc07.deviantart.net/fs70/f/2011/248/8/5/m_32_25_a_v2_5_16_screen_by_arclance-d48ztm0.png)
Mayday v31_25_a Resized to 24x24 Tiles With resize_tileset_hqx_tilebytile interp='spline' (v2.5)
(http://fc01.deviantart.net/fs70/f/2011/248/2/3/m_32_25_a_v2_5_24_pscreen_by_arclance-d48zsvp.png)
Mayday v31_25_a Resized to 24x24 Tiles With delete_bg_color R=255 G=0 B=255 then resize_tileset_hqx_tilebytile interp='spline' (v3.0 Preview)
(http://fc02.deviantart.net/fs70/f/2011/248/7/9/m_32_25_a_v2_5_24_pscreenfix_by_arclance-d48ztdr.png)
Mayday v31_25_e Original Size (16x16)
(http://fc02.deviantart.net/fs70/f/2012/030/2/6/m_32_25_e_v2_5_16_screen___original_by_arclance-d4o4e76.png)
Mayday v31_25_e Resized to 24x24 Tiles With resize_tileset_tilebytile interp='nearest' (v2.5)
(http://fc01.deviantart.net/fs71/f/2012/030/e/e/m_32_25_e_v2_5_24_screen___tilebytile_by_arclance-d4o4ff0.png)
Mayday v31_25_e Resized to 24x24 Tiles With resize_tileset_hqx_tilebytile interp='spline' (v2.5)
(http://fc02.deviantart.net/fs71/f/2012/030/c/8/m_32_25_e_v2_5_24_screen___hqx_tilebytile_by_arclance-d4o4fux.png)
yokomeshi 12x12 tileset Original Size (12x12)
(http://fc04.deviantart.net/fs71/f/2011/248/1/f/y_12_screen_by_arclance-d48zuzo.png)
yokomeshi 12x12 tileset Resized to 24x24 Tiles With resize_tileset_hqx_tilebytile interp='spline' (v2.5)
(http://fc08.deviantart.net/fs71/f/2011/248/b/1/y_v2_5_24_pscreen_by_arclance-d48ztvm.png)
yokomeshi 12x12 tileset Resized to 24x24 Tiles With delete_bg_color R=255 G=0 B=255 then resize_tileset_hqx_tilebytile interp='spline' (v3.0 Preview)
(http://fc00.deviantart.net/fs70/f/2011/248/3/3/y_v2_5_24_pscreen_fix_by_arclance-d48zu5s.png)
Vherid Tileset/Colorscheme (ASCII+) Original Size (12x12)
(http://fc03.deviantart.net/fs70/f/2011/248/a/c/v_12_screen_by_arclance-d48zwbe.png)
Vherid Tileset/Colorscheme (ASCII+) Resized to 24x24 Tiles With resize_tileset_hqx_tilebytile interp='spline' (v2.5)
(http://fc05.deviantart.net/fs71/f/2011/248/f/d/v_v2_5_12_pscreen_by_arclance-d48zwil.png)
Vherid Tileset/Colorscheme (ASCII+) Resized to 24x24 Tiles With delete_bg_color R=255 G=0 B=255 then resize_tileset_hqx_tilebytile interp='spline' (v3.0 Preview)
(http://fc09.deviantart.net/fs71/f/2011/248/d/c/v_v3_0_24_pscreen_fix_by_arclance-d48zwq7.png)
Using Tileset Resizer
Instructions on how to use Tileset Resizer are found in the readme below and in the download.
Readme
Tileset Resizer v2.5 Readme
09-01-2011
Tileset Resizer is a collection of Octave Functions designed to resize Dwarf Fortress tilesets with minimum loss of quality.
The included functions are
resize_tileset
resize_tileset_tilebytile
resize_tileset_hqx
resize_tileset_hqx_tilebytile
See Forum Thread http://www.bay12forums.com/smf/index.php?topic=87196.0 for examples of resized tilesets.
Note:
All Tileset Resizer functions can now resize RGB images as well as RGB+Alpha images. resize_tileset and resize_tileset_tilebytile also support grayscale images.
Dwarf Fortress enforces a hardcoded display of a minimum of 80 tiles in the horizontal direction.
Because of this the maximum tile size (in pixels) that can be displayed on a monitor is calculated the following way.
Maximum Tile Size = (Monitor Horizontal Resolution In Pixels)/80
See http://www.bay12forums.com/smf/index.php?topic=87196.msg2582949#msg2582949 (Reply #10) for more information.
Requirements
--Octave - a opensource alternative to MatLab a command line computaional mathematics library.
Windows
http://octave.sourceforge.net/index.html
The Windows executable installer is for Octave 3.2.4 which is over a year old (current version is 3.4.x).
The oct2mat package included in this installer has a bug which prevents Octave from reading image files.
Tileset Resizer functions now detect incompatible packages and deactivate them automatically.
The spline interpolation function included in this version of Octave may not work with all images.
Mac OS X
http://octave.sourceforge.net/index.html
Linux
Most linux distributions have a octave package available
--The Octave Package "Image" is required.
You can check what packages you have installed with
pkg list
Windows/Mac OS X
The Package can be found here
http://octave.sourceforge.net/image/
Refer to this page for installation instructions.
http://octave.sourceforge.net/FAQ.html
Linux
Some linux distributions come with this packge installed or as a addon package for Octave
If this is not the case the package can be found here
http://octave.sourceforge.net/image/
Octave must be run as a superuser to install packages.
Refer to this page for installation instructions.
http://octave.sourceforge.net/FAQ.html
Close Octave with exit and then restart as a normal user after installing the package.
--hqx - hqx is required to use resize_tileset_hqx and resize_tileset_hqx_tilebytile
Windows
The windows executable can be downloaded from here.
http://code.google.com/p/hqx/
The contents of the windows zip file should be extraced to the windows directory in Tileset_Resizer_v2.5_arclance
if this is done correctly the hqx.exe file should be in the directory
Tileset_Resizer_v2.5_arclance\windows\hqx\bin
Linux/Mac OS X
The hqx source code can be downloaded from here.
http://code.google.com/p/hqx/
The contents of the source zip file should be extracted to the Tileset_Resizer_v2.5_arclance folder.
The source must then be compiled in this location.
Using Tileset Resizer
1. Copy the tileset you want to resize to the Tileset_Resizer_v2.5_arclance directory.
2. Start Octave
3. Change directory to the Tileset_Resizer_v2.5_arclance directory (cd pathto/Tileset_Resizer_v2.5_arclance)
4. run one of the resizing functions as shown in the following examples
--resize_tileset is the simplest and fastest resizing function, but it produces the most errors when resizing.
resize_tileset(file_name,file_type,tileset_x_dimensions,tileset_y_dimensions,tile_x_size,tile_y_size,interp)
file_name = filename without extstension. ex. 'Phoebus_16x16'
file_type = file extenstion without period. ex 'png'
tileset_x_dimensions = width in tiles of the tileset. ex. 16 Set to 1 to resize a single tile. (for unit sets get from [PAGE_DIM:x:y])
tileset_y_dimensions = height in tiles of the tileset. ex. 16 Set to 1 to resize a single tile. (for unit sets get from [PAGE_DIM:x:y])
tile_x_size = width in pixels to resize the tiles to. ex. 24 (for unit sets get from [TILE_DIM:x:y])
tile_y_size = height in pixels to resize the tiles to. ex. 24 (for unit sets get from [TILE_DIM:x:y])
interp = the type of interpolation to use when resizing. interp can be ('nearest','linear','bilinear','cubic','bicubic','pchip', or 'spline') only nearest is recomended for upsizing with resize_tileset
An example of the correct input for resizing the Phoebus tileset to have 24x24 tiles using resize_tileset is shown below
resize_tileset('Phoebus_16x16','png',16,16,24,24,'nearest')
Examples of how this will appear in Octave can be found in Tileset_Resizer_Example.txt.
This produces an output file named Phoebus_16x16_nearest_tileset_dimensions_16x16_tile_size_24x24_tileset_size_384x384_minimum_horizontal_resolution_1920.png in the Resized_Tilesets directory inside of the Tileset_Resizer_v2.5_arclance directory.
The name of the output file can be used to confirm that the desired tileset size was produced.
To use the output file as a tileset rename it to match original tileset file and replace the original file with the output file in your Dwarf Fortress install.
If resizing a Unit Graphics Set the line
[TILE_DIM:X:Y]
in the corresponding text file for that Unit Graphics Set must be changed to
[TILE_DIM:NEW_X:NEW_Y]
or the unit tiles will not appear properly resized (resulting in blurry dwarfs).
--resize_tileset_tilebytile breaks the tileset up into its individual tiles and resizes them individually before recombining them again. This is slower than resize_tileset but produces better results.
resize_tileset_tilebytile(file_name,file_type,tileset_x_dimensions,tileset_y_dimensions,tile_x_size,tile_y_size,interp)
The same inputs are used as with resize_tileset and the recomendations about what interp to use are the same as well.
--resize_tileset_hqx resizes the tileset using the hqx resizing algorithm. The results of this resizing method are significantly different than from resize_tileset, examples can be found on the forum thread.
resize_tileset_hqx(file_name,file_type,tileset_x_dimensions,tileset_y_dimensions,tile_x_size,tile_y_size,interp)
The same inputs are used as with resize_tileset but different recomendations are given below for what interp to use.
interp can be ('nearest','linear','bilinear','cubic','bicubic','pchip','spline') spline, cubic, or bicubic should give the best results
--resize_tileset_hqx_tilebytile breaks the tileset up into its individual tiles and resizes them individually with the hqx resizing algorithm before recombining them again. This function is significantly slower than the others.
Resizing a tileset with dimensions of 16x16 (in tiles) takes approximately 10 minutes.
resize_tileset_hqx_tilebytile(file_name,file_type,tileset_x_dimensions,tileset_y_dimensions,tile_x_size,tile_y_size,interp)
The same inputs are used as with resize_tileset but different recomendations are given below for what interp to use.
interp can be ('nearest','linear','bilinear','cubic','bicubic','pchip','spline') spline, cubic, or bicubic should give the best results
Changelog
v2.5
All Tileset Resizer functions now detect known incompatible Octave Forge packages (oct2mat) and deactivates them with the "pkg unload package_name" command.
All Tileset Resizer functions now check if required Octave Forge packages (image) are installed and if they are activated. If they are not installed and error message is displayed. If the packages are not activated they are activated automatically with the "pkg load package_name" command.
Warning messages are given if a package is loaded or unloaded.
imresize and imremap updated to be able to resize RGB, RGB+Alpha, and grayscale images.
All Tileset Resizer functions can now resize RGB images as well as RGB+Alpha images. resize_tileset and resize_tileset_tilebytile also support grayscale images.
resize_tileset_hqx_tilebytile now includes workarounds for bugs in imread that appear when reading small image files (like individual tiles).
resize_tileset_hqx_tilebytile rewritten to be easier to modify and to check for incorrect user inputs before anything else.
All Tileset Resizer functions now save resized tilesets in the same filetype as the original image.
v2.0
resize_tileset now allows the user to select the interpolation method.
added resize_tileset_tilebytile -- breaks the tileset up into its individual tiles and resizes them individually before recombining them again.
added resize_tileset_hqx -- resizes the tileset using the hqx resizing algorithm. Requires download of hqx.
added resize_tileset_hqx_tilebytile -- breaks the tileset up into its individual tiles and resizes them individually with the hqx resizing algorithm before recombining them again. Requires download of hqx.
v1.1
Modified imresize and imremap to handle 4 channel images instead of 3 channel images, now processes whole image at once instead of each layer individualy.
imresize and imremap modification reduces distortion of images when resizeing by using relationships between layers to improve the interpolation result.
This is a simple rewrite and breakes support for 3 channel images, if 3 channel support is needed I will do a more extensive rewrite.
Changelog
v2.5
All Tileset Resizer functions now detect known incompatible Octave Forge packages (oct2mat) and deactivates them with the "pkg unload package_name" command.
All Tileset Resizer functions now check if required Octave Forge packages (image) are installed and if they are activated. If they are not installed and error message is displayed. If the packages are not activated they are activated automatically with the "pkg load package_name" command.
Warning messages are given if a package is loaded or unloaded.
imresize and imremap updated to be able to resize RGB, RGB+Alpha, and grayscale images.
All Tileset Resizer functions can now resize RGB images as well as RGB+Alpha images. resize_tileset and resize_tileset_tilebytile also support grayscale images.
resize_tileset_hqx_tilebytile now includes workarounds for bugs in imread that appear when reading small image files (like individual tiles).
resize_tileset_hqx_tilebytile rewritten to be easier to modify and to check for incorrect user inputs before anything else.
All Tileset Resizer functions now save resized tilesets in the same filetype as the original image.
v2.0
resize_tileset now allows the user to select the interpolation method.
added resize_tileset_tilebytile -- breaks the tileset up into its individual tiles and resizes them individually before recombining them again.
added resize_tileset_hqx -- resizes the tileset using the hqx resizing algorithm. Requires download of hqx.
added resize_tileset_hqx_tilebytile -- breaks the tileset up into its individual tiles and resizes them individually with the hqx resizing algorithm before recombining them again. Requires download of hqx.
v1.1
Modified imresize and imremap to handle 4 channel images instead of 3 channel images, now processes whole image at once instead of each layer individualy.
imresize and imremap modification reduces distortion of images when resizeing by using relationships between layers to improve the interpolation result.
This is a simple rewrite and breakes support for 3 channel images, if 3 channel support is needed I will do a more extensive rewrite.