UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
ImageUtils.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3/*=============================================================================
4ImageUtils.h: Image/Textures utility functions
5=============================================================================*/
6
7#pragma once
8
9#include "CoreMinimal.h"
10#include "Misc/Guid.h"
11#include "ImageCore.h"
12#include "Engine/Texture.h"
13
14/*
15
16NOTE: Please prefer to work with images through ImageCore FImage/FImageView
17(not TextureSource/TextureSourceFormat or raw arrays of bytes)
18
19Use FImageUtils::CompressImage/DecompressImage
20
21The easiest way to load/save an image is FImageUtils::LoadImage/SaveImageByExtension
22
23Typically let the user's filename choose the image format, don't hard-code them in code.
24
25*/
26
27class UTexture2D;
28class UTexture2DArray;
29class UTextureCube;
31class UVolumeTexture;
36
78
88{
89public:
90
97 ENGINE_API static bool LoadImage(const TCHAR * Filename, FImage & OutImage);
98
109 ENGINE_API static bool SaveImageByExtension(const TCHAR * Filename, const FImageView & InImage, int32 Quality=0);
110
120 ENGINE_API static bool SaveImageAutoFormat(const TCHAR * Filename, const FImageView & InImage, int32 Quality=0);
121
133 ENGINE_API static bool CompressImage(TArray64<uint8> & OutData, const TCHAR * ToFormatExtension, const FImageView & InImage, int32 Quality = 0);
134
143
154 ENGINE_API static bool ExportTextureSourceToDDS(TArray64<uint8> & OutData, UTexture * Texture, int BlockIndex=0, int LayerIndex=0);
155
165
173
193
213
231
249
269
282
293
305 ENGINE_API static void CropAndScaleImage( int32 SrcWidth, int32 SrcHeight, int32 DesiredWidth, int32 DesiredHeight, const TArray<FColor> &SrcData, TArray<FColor> &DstData );
306
316 ENGINE_API static void ThumbnailCompressImageArray( int32 ImageWidth, int32 ImageHeight, const TArray<FColor> &SrcData, TArray<uint8> &DstData );
317
318 UE_DEPRECATED(5.1, "Please use PNGCompressImageArray or ThumbnailCompressImageArray")
319 static void CompressImageArray( int32 ImageWidth, int32 ImageHeight, const TArray<FColor> &SrcData, TArray<uint8> &DstData )
320 {
321 ThumbnailCompressImageArray(ImageWidth,ImageHeight,SrcData,DstData);
322 }
323
334 ENGINE_API static void PNGCompressImageArray(int32 ImageWidth, int32 ImageHeight, const TArrayView64<const FColor>& SrcData, TArray64<uint8>& DstData);
335
345
355 ENGINE_API static UTexture2DArray* CreateCheckerboardTexture2DArray(FColor ColorOne = FColor(64, 64, 64), FColor ColorTwo = FColor(128, 128, 128), int32 CheckerSize = 32, int32 ArraySize = 1);
356
366
377
387
399
410
421
433
440 ENGINE_API static UTexture2D* ImportFileAsTexture2D(const FString& Filename);
441
450
461
472
473 UE_DEPRECATED(5.5, "Use GetRenderTargetImage")
475
486
487};
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
FPlatformTypes::TCHAR TCHAR
Either ANSICHAR or WIDECHAR, depending on whether the platform supports wide characters or the requir...
Definition Platform.h:1135
FPlatformTypes::int64 int64
A 64-bit signed integer.
Definition Platform.h:1127
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
return true
Definition ExternalRpcRegistry.cpp:601
EObjectFlags
Definition ObjectMacros.h:552
@ RF_NoFlags
No flags, used to avoid a cast.
Definition ObjectMacros.h:555
TextureCompressionSettings
Definition TextureDefines.h:392
TextureMipGenSettings
Definition TextureDefines.h:129
TextureGroup
Definition TextureDefines.h:29
@ TEXTUREGROUP_MAX
Definition TextureDefines.h:124
ETextureClass
Definition TextureDefines.h:299
int BlockIndex
Definition binka_ue_decode_test.cpp:38
uint8_t uint8
Definition binka_ue_file_header.h:8
Definition Archive.h:1208
Definition ImageUtils.h:88
static ENGINE_API UTexture2DArray * CreateCheckerboardTexture2DArray(FColor ColorOne=FColor(64, 64, 64), FColor ColorTwo=FColor(128, 128, 128), int32 CheckerSize=32, int32 ArraySize=1)
Definition ImageUtils.cpp:923
static ENGINE_API bool ExportRenderTargetToDDS(TArray64< uint8 > &OutData, UTextureRenderTarget *TexRT)
Definition ImageUtils.cpp:322
static ENGINE_API bool LoadImage(const TCHAR *Filename, FImage &OutImage)
Definition ImageUtils.cpp:98
static ENGINE_API void PNGCompressImageArray(int32 ImageWidth, int32 ImageHeight, const TArrayView64< const FColor > &SrcData, TArray64< uint8 > &DstData)
Definition ImageUtils.cpp:875
static ENGINE_API bool ExportTexture2DAsHDR(UTexture2D *TexRT, FArchive &Ar)
Definition ImageUtils.cpp:1304
static ENGINE_API void ImageResize(int32 SrcWidth, int32 SrcHeight, const TArray< FColor > &SrcData, int32 DstWidth, int32 DstHeight, TArray< FColor > &DstData, bool bResizeSRGBinLinearSpace, bool bForceOpaqueOutput=true)
Definition ImageUtils.cpp:607
static ENGINE_API bool DecompressImage(const void *InCompressedData, int64 InCompressedSize, FImage &OutImage)
Definition ImageUtils.cpp:127
static ENGINE_API bool ExportRenderTarget2DAsPNG(UTextureRenderTarget2D *TexRT, FArchive &Ar)
Definition ImageUtils.cpp:1266
static ENGINE_API bool GetRawData(UTextureRenderTarget2D *TexRT, TArray64< uint8 > &RawData)
Definition ImageUtils.cpp:429
static ENGINE_API UTexture2D * CreateCheckerboardTexture(FColor ColorOne=FColor(64, 64, 64), FColor ColorTwo=FColor(128, 128, 128), int32 CheckerSize=32)
Definition ImageUtils.cpp:887
static ENGINE_API bool SaveImageAutoFormat(const TCHAR *Filename, const FImageView &InImage, int32 Quality=0)
Definition ImageUtils.cpp:65
static ENGINE_API void ThumbnailCompressImageArray(int32 ImageWidth, int32 ImageHeight, const TArray< FColor > &SrcData, TArray< uint8 > &DstData)
Definition ImageUtils.cpp:848
static ENGINE_API bool ExportRenderTargetCubeAsHDR(UTextureRenderTargetCube *TexRT, FArchive &Ar)
Definition ImageUtils.cpp:1427
static ENGINE_API bool SaveImageByExtension(const TCHAR *Filename, const FImageView &InImage, int32 Quality=0)
Definition ImageUtils.cpp:109
static ENGINE_API bool CompressImage(TArray64< uint8 > &OutData, const TCHAR *ToFormatExtension, const FImageView &InImage, int32 Quality=0)
Definition ImageUtils.cpp:140
static void CompressImageArray(int32 ImageWidth, int32 ImageHeight, const TArray< FColor > &SrcData, TArray< uint8 > &DstData)
Definition ImageUtils.h:319
static ENGINE_API void CropAndScaleImage(int32 SrcWidth, int32 SrcHeight, int32 DesiredWidth, int32 DesiredHeight, const TArray< FColor > &SrcData, TArray< FColor > &DstData)
Definition ImageUtils.cpp:790
static ENGINE_API UVolumeTexture * CreateCheckerboardVolumeTexture(FColor ColorOne=FColor(64, 64, 64), FColor ColorTwo=FColor(128, 128, 128), int32 CheckerSize=16)
Definition ImageUtils.cpp:1026
static ENGINE_API UTexture2D * ImportFileAsTexture2D(const FString &Filename)
Definition ImageUtils.cpp:1356
static ENGINE_API UTexture2D * ImportBufferAsTexture2D(TArrayView64< const uint8 > Buffer)
Definition ImageUtils.cpp:1378
static ENGINE_API bool ExportRenderTarget2DAsEXR(UTextureRenderTarget2D *TexRT, FArchive &Ar)
Definition ImageUtils.cpp:1285
static ENGINE_API UTexture2D * CreateTexture2D(int32 SrcWidth, int32 SrcHeight, const TArray< FColor > &SrcData, UObject *Outer, const FString &Name, const EObjectFlags &Flags, const FCreateTexture2DParameters &InParams)
Definition ImageUtils.cpp:682
static ENGINE_API bool ExportRenderTarget2DAsHDR(UTextureRenderTarget2D *TexRT, FArchive &Ar)
Definition ImageUtils.cpp:1247
static ENGINE_API bool ExportTextureSourceToDDS(TArray64< uint8 > &OutData, UTexture *Texture, int BlockIndex=0, int LayerIndex=0)
Definition ImageUtils.cpp:163
static ENGINE_API bool GetRenderTargetImage(UTextureRenderTarget *TexRT, FImage &OutImage)
Definition ImageUtils.cpp:445
static ENGINE_API UTexture * CreateTexture(ETextureClass TextureClass, const FImageView &Image, UObject *Outer, const FString &Name, EObjectFlags Flags=RF_NoFlags, bool DoPostEditChange=true)
Definition ImageUtils.cpp:743
static ENGINE_API bool GetTexture2DSourceImage(UTexture2D *Texture, FImage &OutImage)
Definition ImageUtils.cpp:1326
static ENGINE_API bool ExportTextureCubeAsHDR(UTextureCube *TexRT, FArchive &Ar)
Definition ImageUtils.cpp:1434
static ENGINE_API UTexture2D * CreateTexture2DFromImage(const FImageView &Image)
Definition ImageUtils.cpp:1391
static ENGINE_API UTextureCube * CreateCheckerboardCubeTexture(FColor ColorOne=FColor(64, 64, 64), FColor ColorTwo=FColor(128, 128, 128), int32 CheckerSize=32)
Definition ImageUtils.cpp:953
static ENGINE_API UTextureCubeArray * CreateCheckerboardTextureCubeArray(FColor ColorOne=FColor(64, 64, 64), FColor ColorTwo=FColor(128, 128, 128), int32 CheckerSize=32, int32 ArraySize=1)
Definition ImageUtils.cpp:993
Definition IImageWrapperModule.h:50
Definition ArrayView.h:139
Definition Array.h:670
Definition Object.h:95
Definition Texture2DArray.h:16
Definition Texture2D.h:26
Definition TextureCubeArray.h:12
Definition TextureCube.h:15
Definition TextureRenderTarget2D.h:104
Definition TextureRenderTargetCube.h:22
Definition TextureRenderTarget.h:22
Definition Texture.h:1219
Definition VolumeTexture.h:17
@ false
Definition radaudio_common.h:23
Definition Color.h:486
Definition ImageUtils.h:42
FCreateTexture2DParameters()
Definition ImageUtils.h:67
TextureMipGenSettings MipGenSettings
Definition ImageUtils.h:59
TextureGroup TextureGroup
Definition ImageUtils.h:62
TextureCompressionSettings CompressionSettings
Definition ImageUtils.h:47
FGuid SourceGuidHash
Definition ImageUtils.h:65
bool bSRGB
Definition ImageUtils.h:53
bool bUseAlpha
Definition ImageUtils.h:44
bool bDeferCompression
Definition ImageUtils.h:50
bool bVirtualTexture
Definition ImageUtils.h:56
Definition Guid.h:109
Definition ImageCore.h:264
Definition ImageCore.h:416
Definition LinuxPlatformSplash.cpp:43