Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  
Pages: [1] 2 3

Author Topic: Tileset Resizer v2.5 - Now With hqx -> v3.0 Mac Beta Testers Needed  (Read 768130 times)

arclance

  • Bay Watcher
    • View Profile

Tileset Resizer v2.5
Resize Tilesets For Larger or Smaller Monitors

Tileset Resizer is a collection of 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 is also required to to use Tileset Resizer.
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



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
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.
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 for more information. 


Example Results

Original 18x18 Tiles
Spoiler (click to show/hide)
Resize To 24x24 Tiles With resize_tileset_tilebytile interp='nearest'
Spoiler (click to show/hide)
Resize to 24x24 Tiles With resize_tileset_hqx_tilebytile interp='spline'
Spoiler (click to show/hide)

Original 16x16 Tiles
Spoiler (click to show/hide)
Resize To 24x24 Tiles With resize_tileset interp='nearest'
Spoiler (click to show/hide)
Resize To 24x24 Tiles With resize_tileset_tilebytile interp='nearest'
Spoiler (click to show/hide)
Resize To 24x24 Tiles With resize_tileset_hqx interp='spline'
Spoiler (click to show/hide)
Resize to 24x24 Tiles With resize_tileset_hqx_tilebytile interp='spline'
Spoiler (click to show/hide)
Resize to 45x45 Tiles With resize_tileset_hqx_tilebytile interp='spline'
Spoiler (click to show/hide)

Original 16x16 Tiles
Spoiler (click to show/hide)
Resize To 24x24 Tiles With resize_tileset interp='nearest'
Spoiler (click to show/hide)
Resize to 24x24 Tiles With resize_tileset_tilebytile interp='nearest'
Spoiler (click to show/hide)
Resize to 24x24 Tiles With resize_tileset_hqx interp='spline'
Spoiler (click to show/hide)
Resize to 24x24 Tiles With resize_tileset_hqx_tilebytile interp='spline'
Spoiler (click to show/hide)
Resize to 45x45 Tiles With resize_tileset_hqx_tilebytile interp='spline'
Spoiler (click to show/hide)

Original 16x16 Tiles
Spoiler (click to show/hide)
Resize To 24x24 With resize_tileset_tilebytile interp='nearest'
Spoiler (click to show/hide)
Resize to 24x24 Tiles With resize_tileset_hqx_tilebytile interp='spline'
Spoiler (click to show/hide)

Original 16x16 Tiles
Spoiler (click to show/hide)
Resize To 24x24 With resize_tileset_tilebytile interp='nearest'
Spoiler (click to show/hide)
Resize to 24x24 Tiles With resize_tileset_hqx_tilebytile interp='spline'
Spoiler (click to show/hide)

Original 12x12 Tiles
Spoiler (click to show/hide)
Resize To 24x24 With resize_tileset interp='nearest'
Spoiler (click to show/hide)
Resize To 24x24 With resize_tileset_tilebytile interp='nearest'
Spoiler (click to show/hide)
Resize To 24x24 With resize_tileset_hqx interp='spline'
Spoiler (click to show/hide)
Resize To 24x24 With resize_tileset_hqx_tilebytile interp='spline'
Spoiler (click to show/hide)

Original 12x12 Tiles
Spoiler (click to show/hide)
Resize To 24x24 With resize_tileset_tilebytile interp='nearest'
Spoiler (click to show/hide)
Resize To 24x24 With resize_tileset_hqx_tilebytile interp='spline'
Spoiler (click to show/hide)

Interpolation Methods & Final Sizes Comparison
Follow Link and Click Download Image to See Fullsize Due to Extreme Image Size

Screenshots
!!Warning Very Large Images!!
Phoebus 0.31.25v23 With Beefmo Units Original Size (16x16)
Spoiler (click to show/hide)
Phoebus 0.31.25v23 With Beefmo Units Resized to 24x24 Tiles With resize_tileset interp='nearest' (v2.5)
Spoiler (click to show/hide)
Phoebus 0.31.25v23 With Beefmo Units Resized to 24x24 Tiles With resize_tileset_tilebytile interp='nearest' (v2.5)
Spoiler (click to show/hide)
Phoebus 0.31.25v23 With Beefmo Units Resized to 24x24 Tiles With resize_tileset_hqx interp='spline' (v2.5)
Spoiler (click to show/hide)
Phoebus 0.31.25v23 With Beefmo Units Resized to 24x24 Tiles With resize_tileset_hqx_tilebytile interp='spline' (v2.5)
Spoiler (click to show/hide)
Phoebus 0.31.25v23 With Beefmo Units Resized to 20x20 Tiles With resize_tileset_hqx_tilebytile interp='spline' (v2.5)
Spoiler (click to show/hide)
Phoebus 0.31.25v22 With Beefmo Units Resized to 45x45 Tiles With resize_tileset_hqx_tilebytile interp='spline' (v2.0)
Spoiler (click to show/hide)

Ironhand 0.57 Original Size (18x18)
Spoiler (click to show/hide)
Ironhand 0.57 Resized to 24x24 Tiles With resize_tileset_hqx_tilebytile interp='spline' (v2.5)
Spoiler (click to show/hide)

Mayday v31_25_a Original Size (16x16)
Spoiler (click to show/hide)
Mayday v31_25_a Resized to 24x24 Tiles With resize_tileset_hqx_tilebytile interp='spline' (v2.5)
Spoiler (click to show/hide)
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)
Spoiler (click to show/hide)

Mayday v31_25_e Original Size (16x16)
Spoiler (click to show/hide)
Mayday v31_25_e Resized to 24x24 Tiles With resize_tileset_tilebytile interp='nearest' (v2.5)
Spoiler (click to show/hide)
Mayday v31_25_e Resized to 24x24 Tiles With resize_tileset_hqx_tilebytile interp='spline' (v2.5)
Spoiler (click to show/hide)

yokomeshi 12x12 tileset Original Size (12x12)
Spoiler (click to show/hide)
yokomeshi 12x12 tileset Resized to 24x24 Tiles With resize_tileset_hqx_tilebytile interp='spline' (v2.5)
Spoiler (click to show/hide)
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)
Spoiler (click to show/hide)

Vherid Tileset/Colorscheme (ASCII+) Original Size (12x12)
Spoiler (click to show/hide)
Vherid Tileset/Colorscheme (ASCII+) Resized to 24x24 Tiles With resize_tileset_hqx_tilebytile interp='spline' (v2.5)
Spoiler (click to show/hide)
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)
Spoiler (click to show/hide)

Using Tileset Resizer
Instructions on how to use Tileset Resizer are found in the readme below and in the download.

Readme
Spoiler (click to show/hide)

Changelog
Spoiler (click to show/hide)
« Last Edit: March 26, 2012, 06:04:46 pm by arclance »
Logged
I think that might be one of the most dwarfen contraptions I've ever seen the blueprints of.
The Bloodwinery v1.3.1 | Dwarven Lamination v1.5 | Tileset Resizer v2.5 - Mac Beta Tester Needed
Sigtext

arclance

  • Bay Watcher
    • View Profile
Re: Tileset Resizer v1.0 Resize Tilesets For Larger or Smaller Monitors
« Reply #1 on: June 20, 2011, 08:13:45 pm »

Important Information For Windows Users
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.
To use tileset resizer either install the newest version of oct2mat from Octave Forge or run "pkg unload oct2mat" before using tileset resizer.

This is the error mesage you will see if your version of Octave suffers from this bug (or if you have specified the wrong filename or the file you are trying to open is not in the directroy you are in).
Quote
octave-3.2.4.exe:2> resize_tileset('Phoebus_16x16','png',16,16,45,45)
error: imread: cannot find Phoebus_16x16.png
error: called from:
error:   C:\Octave\3.2.4_gcc-4.4.0\share\octave\3.2.4\m\image\imread.m at line 53, column 5
Octave can be compiled from source for Windows but there are no instructions on how to do this for the current release that I know of.
If anyone knows how to compile Octave in windows and can explain how to do it I would appreciate it if you would tell us about it.

I do not know if this will affect the Mac version or not.
Since I do not have access to a Mac I can not check this.

Also some higher end image editing software (ex. Photoshop) can resize using the same method a resize_tileset. 
If you have this type of software already check if it has an option to choose a different interpolation method when resizing a image.
If it does check for a setting of nearest or nearest neighbor. 
If the program has this setting you can resize tilesets in the same way as Tileset Resizer using this setting as long as your image editor respects the alpha layer when resizing. 

If your image editing software does not have this interpolation option it will distort (mostly blur) the tileset when resizing.

This interpolation method takes advantage of the blocky nature of pixel art to resize the image without distorting it because this method does not distort sharp corners (and pixel art is all sharp corners).

edit: solution for windows version found
« Last Edit: July 04, 2011, 08:26:46 pm by arclance »
Logged
I think that might be one of the most dwarfen contraptions I've ever seen the blueprints of.
The Bloodwinery v1.3.1 | Dwarven Lamination v1.5 | Tileset Resizer v2.5 - Mac Beta Tester Needed
Sigtext

arclance

  • Bay Watcher
    • View Profile
Re: Tileset Resizer v1.1 Resize Tilesets For Larger or Smaller Monitors
« Reply #2 on: June 21, 2011, 01:47:53 pm »

Update 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.

Would there be any interest in a version of Tileset Resizer where you input your monitors horizontal resolution and it resizes the tileset to the maximum tilesize for that resolution?
If there is I could easily make one.

Sample images for Phoebus 0.31.25v21 resized to 45x45 tiles (3600 pixel horizontal resolution)
Tileset Resizer v1.0
Spoiler (click to show/hide)

Tileset Resizer v1.1
Spoiler (click to show/hide)

Photoshop CS4 Resized With Nearest Neighbor Interpolation Option
Spoiler (click to show/hide)

Screenshots with Phoebus 0.31.25v21 and Beefmo Units resized to 45x45 tiles (3600 pixel horizontal resolution)
Coming Soon.
« Last Edit: July 04, 2011, 09:04:16 pm by arclance »
Logged
I think that might be one of the most dwarfen contraptions I've ever seen the blueprints of.
The Bloodwinery v1.3.1 | Dwarven Lamination v1.5 | Tileset Resizer v2.5 - Mac Beta Tester Needed
Sigtext

Quarynn

  • Bay Watcher
    • View Profile
Re: Tileset Resizer v1.1 Resize Tilesets For Larger or Smaller Monitors
« Reply #3 on: June 22, 2011, 07:57:11 am »

I'd rather use Paint.NET or Photoshop with Nearest Neighbor option, as this program sets pixel block heights and widths different on some places
Logged
Ancient Steam-Bot, with 1,000,000 horse power

Ethicalfive

  • Bay Watcher
    • View Profile
Re: Tileset Resizer v1.1 Resize Tilesets For Larger or Smaller Monitors
« Reply #4 on: June 22, 2011, 10:36:54 am »

I like it. Shame my screen only supports 16x16 tilesets. Go tell toady to go change the minimum 80 width thing so I can enjoy larger tiles! Blarge, I have having to press my face up against the screen to enjoy pheobus n ironhands sets.

Also I noticed that your ingame screenshots all look the same size to me. Only difference I can see is bitshifted issues with the 45x45 screenshot.
Logged
Urist McMiner Unearths a strange pad. He trembles as he inspects it's time saving features. Knowing no 1 dwarf must posess this power, he quietly drops it into the nearest chasm and never speaks of it again.DwarfPad

Quarynn

  • Bay Watcher
    • View Profile
Re: Tileset Resizer v1.1 Resize Tilesets For Larger or Smaller Monitors
« Reply #5 on: June 22, 2011, 11:02:48 am »

Well, also the reason that 45x45 won't show up correctly in any resizing is that it's not a force of 2 (1,2,4,8,16..)
Logged
Ancient Steam-Bot, with 1,000,000 horse power

arclance

  • Bay Watcher
    • View Profile
Re: Tileset Resizer v2.0 Resize Tilesets - Now With hqx
« Reply #6 on: July 04, 2011, 08:23:59 pm »

Update 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.

Because hqx can not resize images with a alpha channel resize_tileset_hqx and resize_tileset_hqx_tilebytile split the image to its rgb and alpha channels and saves them to be resized by hqx.
These resized images are recombined after resizing. Because hqx can only resize images to 2x, 3x, or 4x size the recombined image is then downsized to the desired final size using a user specified interpolation method.
A picture illustrating this process is shown below.
Spoiler (click to show/hide)

Sample results and screenshots for the new version are in the original post.

The reason that the windows installer version of Octave was not working has been discovered.
The oct2mat package included in this installer has a bug which prevents Octave from reading image files.
To use Tileset Resizer either install the newest version of oct2mat from Octave Forge or run "pkg unload oct2mat" before using tileset resizer.

I'd rather use Paint.NET or Photoshop with Nearest Neighbor option, as this program sets pixel block heights and widths different on some places
Only difference I can see is bitshifted issues with the 45x45 screenshot.
I found that this was caused by pixes from neighboring tiles being used in the interpolation of the resized tile.
The screenshot for resize_tileset_hqx exhibits this problem.
resize_tileset_tilebytile and resize_tileset_hqx_tilebytile include corrections for these issues.
These two functions break the tileset up into individual tiles and then resizes them before recombining them back into the whole tileset.
This prevents pixels from neighboring tiles from being used in interpolating the resized tile.
However this makes the resizing take longer. 
Significantly longer in the case of resize_tileset_hqx_tilebytile which takes approximately 10 minutes to resize a 16x16 (in tiles) tileset while resize_tileset_hqx takes approximately 4 seconds.
resize_tileset_hqx_tilebytile takes approximatlely 125 times longer than resize_tileset_hqx.
This is because octave has to make 16*16*2=512 calles to hqx in the resizing operation for resize_tileset_hqx_tilebytile and 2 calls to hqx for resize_tileset_hqx.
« Last Edit: July 05, 2011, 10:56:01 am by arclance »
Logged
I think that might be one of the most dwarfen contraptions I've ever seen the blueprints of.
The Bloodwinery v1.3.1 | Dwarven Lamination v1.5 | Tileset Resizer v2.5 - Mac Beta Tester Needed
Sigtext

Cave Man

  • Bay Watcher
    • View Profile
Re: Tileset Resizer v2.0 Resize Tilesets - Now With hqx
« Reply #7 on: July 28, 2011, 01:30:56 am »

I can`t run this programs? because Octavia can`t find our files :(
Tell about installation step by step, please:
1 download hqx-1.0-mingw-win32-bin.zip, Octave-3.2.4_i686-pc-mingw32_gcc-4.4.0_setup.exe, Tileset_Resizer_v2.0_arclance
2 extract hqx-1.0-mingw-win32-bin.zip and Tileset_Resizer_v2.0_arclance to...
« Last Edit: July 28, 2011, 01:32:56 am by Cave Man »
Logged

arclance

  • Bay Watcher
    • View Profile
Re: Tileset Resizer v2.0 Resize Tilesets - Now With hqx
« Reply #8 on: July 28, 2011, 12:13:54 pm »

Did you read the readme? Installation and use instructions are in there.

You can extract Tileset_Resizer_v2.0_arclance anywhere.  Extract hqx-1.0-mingw-32-bin.zip inside the windows folder found in the Tileset_Resizer_v2.0_arclance folder that was made when you extracted Tileset_Resizer_v2.0_arclance.

Since you are using the windows installer version you should remember this when using octave if you installed all the packages that are in the installer.
The oct2mat package included in this installer has a bug which prevents Octave from reading image files.
To use Tileset Resizer either install the newest version of oct2mat from Octave Forge or run "pkg unload oct2mat" before using tileset resizer.
« Last Edit: July 28, 2011, 07:42:52 pm by arclance »
Logged
I think that might be one of the most dwarfen contraptions I've ever seen the blueprints of.
The Bloodwinery v1.3.1 | Dwarven Lamination v1.5 | Tileset Resizer v2.5 - Mac Beta Tester Needed
Sigtext

Xen0n

  • Bay Watcher
  • Took joy in ‼SCIENCE‼ lately.
    • View Profile
Re: Tileset Resizer v2.0 Resize Tilesets - Now With hqx
« Reply #9 on: August 31, 2011, 06:27:41 pm »

Hi sorry to bring up an old post.  I really appreciate what you've done here, and have no problems about your handy tool.  Rather, I think I have a problem with implementing it? 

It does in fact resize my tileset to the correct size, and upon installing the newly edited graphics set (and updating savegames), upon initially running DF in window mode the window starts up huge (spilling off my desktop). The tiles I can see in the window are big too, exactly how I want them.  But the moment I click on the window, resize it, move it, enter fullscreen mode (or start in fullscreen mode), all the tiles go back to their standard super tiny sizes, the same size as for any tileset I download and install, and the same physical size on my screen no matter what I change my monitor resolution to / what I eneter as the resolution / grid size in the init file.

Am I missing some critical step to getting the embiggened tilesets to work properly, or am I just screwed?  I wanna use a graphics pack, but seem stuck with ASCII since it's the only way I can find that will let me zoom in enough to actually read things (typically play on a 1280 x 720 monitor)

arclance

  • Bay Watcher
    • View Profile
Re: Tileset Resizer v2.0 Resize Tilesets - Now With hqx
« Reply #10 on: September 01, 2011, 04:09:57 pm »

It does in fact resize my tileset to the correct size, and upon installing the newly edited graphics set (and updating savegames), upon initially running DF in window mode the window starts up huge (spilling off my desktop). The tiles I can see in the window are big too, exactly how I want them.  But the moment I click on the window, resize it, move it, enter fullscreen mode (or start in fullscreen mode), all the tiles go back to their standard super tiny sizes, the same size as for any tileset I download and install, and the same physical size on my screen no matter what I change my monitor resolution to / what I eneter as the resolution / grid size in the init file.

Am I missing some critical step to getting the embiggened tilesets to work properly, or am I just screwed?  I wanna use a graphics pack, but seem stuck with ASCII since it's the only way I can find that will let me zoom in enough to actually read things (typically play on a 1280 x 720 monitor)

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 can be calculated the following way.

Maximum Tile Size = (Monitor Horizontal Resolution In Pixels)/80

For your 1280x720 laptop this equation gives
1280/80 = 16
so the largest square tiles that can be displayed on your monitor are 16x16 tiles.
If you try to use a tileset with larger tiles than 16x16 on a 1280x720 monitor (ex. 24x24) dwarf fortress will downsize the tileset to conform to the 80 tile limit.

Tilset Resizer reports the minimum horizontal resolution needed to use the resized tileset that is produced using the following equation

min_resolution = tile_x_size*80

This result is printed in the terminal output just before the resized tileset is saved and is included in the filename so it can be checked later.  An example filename is below.
hexed_12x12_hqx_tilebytile_spline_tileset_dimensions_16x16_tile_size_24x24_tileset_size_384x384_minimum_horizontal_resolution_1920.png
For a tile size of tile_x_size of 16 the equation gives a min_resoultion of 1280, for a tile_x_size of 24 it gives a min_resolution of 1920.

Most tilesets have 16x16 pixel or larger tiles to start with.  The first post has some example tilesets with there original tilesize given. 
An exeption is yokomeshi's 12x12 tileset which I find quite usable on my 1280x720 laptop.
Logged
I think that might be one of the most dwarfen contraptions I've ever seen the blueprints of.
The Bloodwinery v1.3.1 | Dwarven Lamination v1.5 | Tileset Resizer v2.5 - Mac Beta Tester Needed
Sigtext

Xen0n

  • Bay Watcher
  • Took joy in ‼SCIENCE‼ lately.
    • View Profile
Re: Tileset Resizer v2.0 Resize Tilesets - Now With hqx
« Reply #11 on: September 01, 2011, 05:23:08 pm »

Thanks for the very informative reply!  After reading it I got suspicious, did some checking, and discovered that in actuality I was getting exactly 80 tiles along the horizontal axis with both ASCII and graphics sets, but the ASCII just appeared to be larger due to less detail and increased readability/clarity from a distance.

To sum up, I can't tell how big things are by looking at them, and everything was working fine.  Since that 80 tile limit is hardcoded, only thing left is to move the monitor closer :P

Thanks again!

arclance

  • Bay Watcher
    • View Profile
Re: Tileset Resizer v2.5 Resize Tilesets - Now With hqx
« Reply #12 on: September 02, 2011, 02:38:47 pm »

Update 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.

Added RGB tileset examples (Vherid and yokomeshi).
Updated examples to v2.5.  Screenshots updates will come in the next few days.

DFFD upload is not working, stuck at zero percent uploaded.  Use the mediafire backup link for now.
DFFD upload successful.
« Last Edit: September 02, 2011, 03:58:50 pm by arclance »
Logged
I think that might be one of the most dwarfen contraptions I've ever seen the blueprints of.
The Bloodwinery v1.3.1 | Dwarven Lamination v1.5 | Tileset Resizer v2.5 - Mac Beta Tester Needed
Sigtext

arclance

  • Bay Watcher
    • View Profile
Re: Tileset Resizer v2.5 Resize Tilesets - Now With hqx ->Batch Files Eventually
« Reply #13 on: September 05, 2011, 06:34:12 pm »

Version 3.0 Progress Update
Discovered this problem that occurs when resizing RGB images (happens in RGB+Alpha also but the alpha layer completely hides it).
Resizing RGB images with backround colors leaves slightly different colors than the background around the tile subject.
This is due to the way interpolation works in resizing images and is unavoidable.  Alpha layer masks hide this problem in RGB+Alpha images by masking out the pink outline so it is not shown.
Spoiler (click to show/hide)
Spoiler (click to show/hide)
A fix for this wil be released with v3.0. Initial results are shown below.
Spoiler (click to show/hide)
Spoiler (click to show/hide)
Support for grayscale images will be added to resize_tileset_hqx and resize_tileset_hqx_tilebytile in v3.0.
Batch files to process every image of the specified type in the current working directory will be included in v3.0.
Batch processing requires a slight change to the way the resizing functions are called in Octave.
Usage instructions must be rewritten to reflect these changes before v3.0 is released.

Screenshots are almost completely updated.
« Last Edit: January 28, 2012, 10:12:17 pm by arclance »
Logged
I think that might be one of the most dwarfen contraptions I've ever seen the blueprints of.
The Bloodwinery v1.3.1 | Dwarven Lamination v1.5 | Tileset Resizer v2.5 - Mac Beta Tester Needed
Sigtext

arclance

  • Bay Watcher
    • View Profile
Re: Tileset Resizer v2.5 - Now With hqx -> v3.0 Beta Testers Needed
« Reply #14 on: January 30, 2012, 03:52:04 pm »

Version 3.0 Progress Update 2 - Beta Testers Needed
I did not have as much time as I thought I would when I last posted about an update here. 
I had some free time recently so here is a update of my progress to the next version.

Resizing RGB images with backround colors leaves slightly different colors than the background around the tile subject. - done
Support for grayscale images will be added to resize_tileset_hqx and resize_tileset_hqx_tilebytile in v3.0. - done
Batch files to process every image of the specified type in the current working directory will be included in v3.0. - done
Batch processing requires a slight change to the way the resizing functions are called in Octave. - done
Usage instructions must be rewritten to reflect these changes before v3.0 is released. - will do after beta testing

                                     New
Adding multithreading to resize_tileset_hqx_tilebytile
I am seeing up to 2.8x faster processing on a hyperthreaded quad core using 8 threads and 1.8x faster processing using 2 threads.
The MT version is experimental and I need beta testers for all operating systems before I can make a full release, especially Windows and Mac as the mutithreading method may not work correctly on those operating systems.
If anyone wants to help with the beta testing post here and I will tell you what to do.

First Post Updates
Added v3.0 Preview Screenshots
Added Mayday v31_25_e Screenshots/Resizing Examples
Added Comparison samples for the results of using the different interpolation methods available in Octave for each Tileset Resizer function for several final tile sizes
« Last Edit: January 30, 2012, 04:25:05 pm by arclance »
Logged
I think that might be one of the most dwarfen contraptions I've ever seen the blueprints of.
The Bloodwinery v1.3.1 | Dwarven Lamination v1.5 | Tileset Resizer v2.5 - Mac Beta Tester Needed
Sigtext
Pages: [1] 2 3