-
Notifications
You must be signed in to change notification settings - Fork 453
Resize
Resize an image or set of images.
Note: that if given a set of images, the resulting ScratchImage will always have mipLevels of 1 (i.e. any mipmaps from the original are discarded)
HRESULT Resize( const Image& srcImage,
size_t width, size_t height, DWORD filter,
ScratchImage& image );
HRESULT Resize( const Image* srcImages, size_t nimages,
const TexMetadata& metadata,
size_t width, size_t height, DWORD filter,
ScratchImage& result );
filter: See Filter Flags
If using TEX_FILTER_DEFAULT
, this routine will default to using FANT if using the WIC code paths. If using the non-WIC codepaths, it defaults to BOX if the destination image is half the size in both dimensions of the source image, otherwise it defaults to LINEAR.
ScratchImage srcImage;
...
ScratchImage destImage;
hr = Resize( srcImage.GetImages(), srcImage.GetImageCount(),
srcImage.GetMetadata(),
100, 50, TEX_FILTER_DEFAULT, destImage );
if ( FAILED(hr) )
...
This function does not operate directly on block compressed images. See Decompress and Compress.
This function cannot operate directly on a planar format image. See ConvertToSinglePlane for a method for converting planar data to a format that is supported by this routine.
The second version of Resize is intended for working with 1D arrays, 2D arrays, cubemaps, and cubemap arrays with mipmaps.
This function is implemented with both WIC and non-WIC code paths. The WIC code paths are used for > 8-bit color depth formats, sRGB color formats, or when WRAP/MIRROR semantics are requested.
- When resizing HDR images, be sure to stick with the default of
TEX_FILTER_FANT
when using WIC as the WIC bitmap scaler has limited supported for high bit-depth and extended range formats. By default, the DirectXTex library chooses to use non-WIC codepaths when generating mipmaps for > 8 color-depth images with LINEAR or CUBIC filtering.
All content and source code for this package are subject to the terms of the MIT License.
This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.
- Universal Windows Platform apps
- Windows desktop apps
- Windows 11
- Windows 10
- Windows 8.1
- Xbox One
- Xbox Series X|S
- Windows Subsystem for Linux
- x86
- x64
- ARM64
- Visual Studio 2022
- Visual Studio 2019 (16.11)
- clang/LLVM v12 - v18
- GCC 10.5, 11.4, 12.3
- MinGW 12.2, 13.2
- CMake 3.20
DirectX Tool Kit for DirectX 11