► Resize Pro ◄


Purchase Here

Resize Pro is the fastest texture resize/scale tool for Unity. Works in Editor and Run-time.

In Editor textures can be resized directly from Project window or by using batch converter (new texture is saved in PNG or JPG formats).
Run-time API adds ResizePro() extension method to the Texture2D class.

Note:
Tool is already included in Texture Adjustments asset.

Update History

v2019.3
• Updated API allows to set generated resized texture format: RGBA32, ARGB32, RGB24, RGBAFloat or RGBAHalf.

v2019.2
• Compatible with Encode Pro

v2019.1
• Updated for Unity 2018.3

v2018.4
• Updated for Unity 2017.4 and Unity 2018.2

v2018.3
• Fixed ‘black texture’ problem on mobile devices.

v2018.2
• Updated for Unity 2018.1
• Compatible with Linear color space
• Improved Resize adjustment. AspectRatio can be locked by Width, Height or Max Resolution.

v2018.1
• Unity 2017.3 compatible

v2017.1
• Added Retina display support

v1.41
• Unity 5.5 compatible
• Run-time API supports mipmap option.

v1.4
• Unity 5.4 compatible

v1.32
• Correct handing original texture extension (lowercase or uppercase).

v1.3 - v1.31
• Resized textures inside editor now can be saved as TGA files too (requires Encode To TGA plugin).
• Generated textures now will have correct import settings.

v1.2
• Editor converter now can detect Bump textures and resize them correctly.

v1.1
• Run-time API updated. Now textures with any format can be resized, even if they are not readable.

VacuumShaders - Facebook Twitter YouTube

Looks nice.
Do you have benchmarks of your plugin performances?
Maybe you can compare it with this: http://wiki.unity3d.com/index.php/TextureScale

Does it work on mobile too?

TextureScale: Only works on ARGB32, RGB24 and Alpha8 textures that are marked readable.
ResizePro: Works with all type of textures.

TextureScale: CPU calculation + bad memory management.
ResizePro: GPU calculation + no memory problem.

Most devices (even very old) support RenderTextures, so yes, ResizePro works on mobiles too.

Here are some benchmarks.

VacuumShaders - Facebook Twitter YouTube

WOW, nice perfs.
Does your benchmark graph clamped to 1 second or the plugin always wait at least 1 second?

After resizing pixel array is read from GPU and saved inside Texture2D. That needs some time.

VacuumShaders - Facebook Twitter YouTube

is this useful in-game or just compression on the editor ?

Run-time API adds ResizePro() extension method to the Texture2D class.

VacuumShaders - Facebook Twitter YouTube

sorry if i sounds like a beginer could you explain further

Adds ResizePro function to the Texture2D class:

using UnityEngine;

//ResizePro
using VacuumShaders.TextureExtensions;


public class NewBehaviourScript : MonoBehaviour
{
    public Texture2D texture;
    int width;
    int height;

    void Start ()
    { 
        //ResizePro
        texture.ResizePro(width, height);
    }
}

VacuumShaders - Facebook Twitter YouTube

Hi

I am trying to use your plugin (bought it as part of TextureAdjustments) but I am not sure how to use it. I assumed it should be simple to use.

I get an texture from a filepath using WWW, and if it is too large I want to resize it. Using TextureScale I could just use

TextureScale.Bilinear(texture, 4096, 4096);

So now I try using your code

texture.ResizePro(texture.width/2, texture.height/2);

but the texture just shows purple, as it also does when the texture is too large. Could you please guide me in the right direction?

EDIT: The texture is resized, but the pixel information is lost. This is confirmed by writing the texture out to the disk.

In the description of the WWW.texture is written that variable is Read Only. You can’t modify it.

In this case use:

ResizePro(int width, int height, out Texture2D dstTexture)

that returns resized texture inside dstTexture variable.

VacuumShaders - Facebook Twitter YouTube

Cannot seem to find a ResizePro function that have those arguments within the namespace VacuumShaders.TextureAdjustments or VacuumShaders.TextureExtensions. Can only find TextureResizePro.ResizePro(Texture texture, int width, int height) and TextureResizePro.ResizePro(Texture texture, int width, int height, TextureFormat format, bool hasMipMap)

I just find it odd that you proclaim that your plugin can handle “all type of textures.” when there are exceptions. Anyway if you can point me in the direction of the mentioned function that would be great!

[EDIT] I just bought the ResizePro plugin directly, and this gives me the function with the parameters you mentioned, so there is a mismatch between the “original” and the one included in Texture Adjustments.

Unfortunately it did not work, here is a code example which will give the error:

WWW www = new WWW("http://kanda.dk/TestLargeImage/PANO_Field.jpg");

while (!www.isDone)
{
    yield return null;
}
    
Texture2D texture = www.texture;
//Max texture size on iOS
int textureHeightLimit = 4096;
int textureWidthLimit = 4096;
//File.WriteAllBytes(Application.dataPath+"/../SavedScreenBefore.png",texture.EncodeToPNG());
if (texture.height > textureHeightLimit || texture.width > textureWidthLimit)
{
#if UNITY_IOS || UNITY_EDITOR_OSX
    //TextureScale.Bilinear(texture, textureHeightLimit, textureWidthLimit);
    Texture2D theOtherTexture = new Texture2D(texture.width/2, texture.height/2);
    texture.ResizePro(texture.width/2, texture.height/2, out theOtherTexture);
    texture = theOtherTexture;
#endif
}
//File.WriteAllBytes(Application.dataPath+"/../SavedScreenAfter.png",texture.EncodeToPNG());
// continue and use the texture

Update Texture Adjustments to v2.21, it includes latest ResizePro API.

What exceptions? :eyes:
If variable is Read Only it can not be modified directly, memory it occupies is ‘locked’ and can’t be overwritten.

Just tried, everything works. Texture is downloaded and saved, including resized version.
What is the error?

As there was no need to purchase ResizePro, I can give refund on it.

VacuumShaders - Facebook Twitter YouTube

Done

I also just tested, and found out that it works if I have Standalone set as build target, but it does not work when changing to iOS or Android as build target. I thought it might just be an editor thing, but it doesn’t work on devices as well. Does it only work on standalone? I do not see any platform limitations mentioned anywhere? :slight_smile: Could also be some settings that I need?

Sure lets find out, I have sent a mail friday last week, lets take that there.

What you mean by ‘doesn’t work’ ? Some errors, warnings, exceptions, crashes ? More details will be helpful.
Also make sure target device supports RenderTextures - it is the only requirement.

VacuumShaders - Facebook Twitter YouTube

The problem was that I did not get any errors, so was hard for me to find the problem. However, I did find that the problem is not ResizePro, but rather the limitation of the system that was the problem. I tried with 8k texture on iOS which does not support over 4k and this also limits the plugin.

However I did find a workaround, though it might not be pretty, it works (so far). I split the texture in 2 halfs, then resize each half and then combine them again. So having a texture of 8192 x 4096 I split in left and right each 4096 x 4096. Then resize left and right to 2048x2048. Then combine left and right to a single 4096 x 2048 image.

Hi. I was wondering if this would scale Texture2D objects on iOS with BGRA32 formatting?

It works with all Texture2D objects. No restriction on image format.

VacuumShaders - Facebook Twitter YouTube

Does this support Windows Phone 8.1 ?

Of course.

VacuumShaders - Facebook Twitter YouTube