UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
ImageWrapperBase.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreTypes.h"
6#include "Containers/Array.h"
9#include "IImageWrapper.h"
10
11
16 : public IImageWrapper
17{
18public:
19
22
23public:
24
31 {
32 return RawData;
33 }
34
44
45public:
46
54 virtual void Compress(int32 Quality) = 0;
55
59 virtual void Reset();
60
66 void SetError(const TCHAR* ErrorMessage);
67
71 const FString & GetLastError() const
72 {
73 return LastError;
74 }
75
84 virtual void Uncompress(const ERGBFormat InFormat, int32 InBitDepth) = 0;
85
97
98public:
99
100 //~ IImageWrapper interface
101
102 virtual TArray64<uint8> GetCompressed(int32 Quality = 0) override;
103
104 virtual int32 GetBitDepth() const override
105 {
106 return BitDepth;
107 }
108
109 virtual ERGBFormat GetFormat() const override
110 {
111 return Format;
112 }
113
114 virtual int64 GetHeight() const override
115 {
116 return Height;
117 }
118
119 virtual bool GetRaw(const ERGBFormat InFormat, int32 InBitDepth, TArray64<uint8>& OutRawData) override;
120
121 // Use this version when you expect more information such as mipmaps, etc.
123
124 virtual int64 GetWidth() const override
125 {
126 return Width;
127 }
128
129 virtual bool SetCompressed(const void* InCompressedData, int64 InCompressedSize) override;
130 virtual bool SetRaw(const void* InRawData, int64 InRawSize, const int32 InWidth, const int32 InHeight, const ERGBFormat InFormat, const int32 InBitDepth, const int32 InBytesPerRow = 0) override;
131
137 virtual bool SupportsMetadata() const override;
138
145 virtual void AddMetadata(const FString& InKey, const FString& InValue) override;
146
152 virtual void GetMetadata(TStringMap& OutMetadata) const override;
153
154protected:
155
157 int64 GetBytesPerRow() const { return Width * GetBytesPerPel(); }
158
159 // For writers: after SetRaw(), call this to get an ImageView of the raw data that was set
160 // can return false if the SetRaw does not map to an image format
161 // pixels point at the RawData array
163
167
171
175
177 FString LastError;
178};
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
ERGBFormat
Definition IImageWrapper.h:76
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
Definition ImageWrapperBase.h:17
virtual void Uncompress(const ERGBFormat InFormat, int32 InBitDepth)=0
virtual bool SetRaw(const void *InRawData, int64 InRawSize, const int32 InWidth, const int32 InHeight, const ERGBFormat InFormat, const int32 InBitDepth, const int32 InBytesPerRow=0) override
Definition ImageWrapperBase.cpp:125
FString LastError
Definition ImageWrapperBase.h:177
virtual void Reset()
Definition ImageWrapperBase.cpp:22
void SetError(const TCHAR *ErrorMessage)
Definition ImageWrapperBase.cpp:36
const TArray64< uint8 > & GetRawData() const
Definition ImageWrapperBase.h:30
int64 GetBytesPerPel() const
Definition ImageWrapperBase.h:156
virtual TArray64< uint8 > GetCompressed(int32 Quality=0) override
Definition ImageWrapperBase.cpp:52
int64 GetBytesPerRow() const
Definition ImageWrapperBase.h:157
virtual bool GetRaw(const ERGBFormat InFormat, int32 InBitDepth, TArray64< uint8 > &OutRawData) override
Definition ImageWrapperBase.cpp:61
int64 Width
Definition ImageWrapperBase.h:173
virtual int64 GetWidth() const override
Definition ImageWrapperBase.h:124
virtual ERGBFormat GetFormat() const override
Definition ImageWrapperBase.h:109
TArray64< uint8 > CompressedData
Definition ImageWrapperBase.h:166
void MoveRawData(TArray64< uint8 > &OutRawData)
Definition ImageWrapperBase.h:40
virtual bool SetCompressed(const void *InCompressedData, int64 InCompressedSize) override
Definition ImageWrapperBase.cpp:104
TArray64< uint8 > RawData
Definition ImageWrapperBase.h:165
virtual bool SupportsMetadata() const override
Definition ImageWrapperBase.cpp:561
virtual int64 GetHeight() const override
Definition ImageWrapperBase.h:114
int BitDepth
Definition ImageWrapperBase.h:170
virtual void Compress(int32 Quality)=0
const FString & GetLastError() const
Definition ImageWrapperBase.h:71
ERGBFormat Format
Definition ImageWrapperBase.h:169
int64 Height
Definition ImageWrapperBase.h:174
virtual void GetMetadata(TStringMap &OutMetadata) const override
Definition ImageWrapperBase.cpp:570
virtual int32 GetBitDepth() const override
Definition ImageWrapperBase.h:104
FImageWrapperBase()
Definition ImageWrapperBase.cpp:11
virtual void AddMetadata(const FString &InKey, const FString &InValue) override
Definition ImageWrapperBase.cpp:566
bool GetImageViewOfSetRawForCompress(FImageView &OutImage) const
Definition ImageWrapperBase.cpp:389
Definition IImageWrapper.h:132
static IMAGEWRAPPER_API int64 GetRGBFormatBytesPerPel(ERGBFormat RGBFormat, int BitDepth)
Definition ImageWrapperBase.cpp:185
TMap< FString, FString > TStringMap
Definition IImageWrapper.h:451
Definition ImageWrapperOutputTypes.h:11
Definition ImageCore.h:264