Navigation
Classes
| Type | Name | Description | |
|---|---|---|---|
| FDDSFile | Metadata structure for a DDS file, with access pointers for the raw texture data (i.e. unconverted from the DXGI format). | ||
| FDDSMip | One of these for each mip of a DDS. | ||
| FImage | Structure for raw image data. | ||
| FImageInfo | FImageInfo describes a 2d pixel surface it can be used by FImage or FImageView | ||
| FImageView |
Enums
| Type | Name | Description | |
|---|---|---|---|
| ERawImageFormat::Type | Enumerates supported raw image formats. should map one-to-one with ETextureSourceFormat | ||
| FImageCore::ProcessLinearPixelsAction | The easy and efficient way to write a pixel processing loop that supports all pixel formats is to use | ||
| UE::DDS::EChannelOrder | Channel ordering for 8-bit formats. | ||
| UE::DDS::EDDSError | Error codes. | ||
| UE::DDS::EDDSFormatVersion | What version of DDS file to write. | ||
| UE::DDS::EDXGIFormat | Complete list of formats. |
Functions
| Type | Name | Description | |
|---|---|---|---|
| int64 | ERawImageFormat::GetBytesPerPixel
(
Type Format |
RGBA -> G8 takes from the R channel G8 -> RGBA replicated to gray | |
| EGammaSpace | ERawImageFormat::GetDefaultGammaSpace
(
Type Format |
When converting from pixel bags that don't store gamma to FImage you can use this to guess the gamma they probably wanted do not use when a real gamma flag is available! | |
| bool | ERawImageFormat::GetFormatNeedsGammaSpace
(
Type Format |
G8 and BGRA8 are affected by Gamma 16/32 is NOT | |
| const TCHAR * | ERawImageFormat::GetName
(
Type Format |
||
| const FLinearColor | ERawImageFormat::GetOnePixelLinear
(
const void* PixelData, |
Get one pixel of Format type from PixelData and return in Linear color. | |
| const FLinearColor | ERawImageFormat::GetOnePixelLinear
(
const void* PixelData, |
Get one pixel of Format type from PixelData and return in Linear color. | |
| bool | ERawImageFormat::IsHDR
(
Type Format |
||
| void | FImageCore::ComputeChannelLinearMinMax
(
const FImageView& InImage, |
Compute the min/max of each channel to get value ranges Colors are converted to float Linear Gamma | |
| FLinearColor | FImageCore::ComputeImageLinearAverage
(
const FImageView& Image |
ComputeImageLinearAverage compute the average linear color of the image image can be any pixel format parallel processing is used, but the result is not machine-dependent | |
| void | FImageCore::CopyImage
(
const FImageView& SrcImage, |
Copy FImageView data, converting pixels if necessary. | |
| void | FImageCore::CopyImageRGBABGRA
(
const FImageView& SrcImage, |
Copy Image, swapping RB, SrcImage must be BGRA8 or RGBA16. | |
| void | FImageCore::CopyImageTo2U16
(
const FImageView& SrcImage, |
Copy Image to 2xU16 ; Dest Image should be allocated as BGRA8 but is actually 2xU16 Sizes must match. | |
| bool | FImageCore::DetectAlphaChannel
(
const FImageView& InImage |
Detects whether or not the image contains an alpha channel where at least one texel is != 255. | |
| void | FImageCore::ImageParallelFor
(
const TCHAR* DebugName, |
Lambda is a functor that works on an FImageView() it will be called with portions of the image each portion will be a 2d FImageView (NumSlices == 1) use like : FImageCore::ImageParallelFor( TEXT("Texture.AdjustImageColorsFunc.PF"),Image, & { | |
| int32 | FImageCore::ImageParallelForComputeNumJobs
(
const FImageView& Image, |
FImage is tight packed in memory with slices adjacent to each other so we can just treat it was a 2d image with Height *= NumSlices | |
| void | FImageCore::ImageParallelForMakePart
(
FImageView* Part, |
||
| void | FImageCore::ImageParallelProcessLinearPixels
(
const TCHAR* DebugName, |
Parallel process image as TArrayView64 |
|
| void | FImageCore::ProcessLinearPixels
(
const FImageView& Image, |
ProcessLinearPixels act on image pixels as TArrayView64 |
|
| void | FImageCore::ResizeTo
(
const FImageView& SourceImage, |
Copies and resizes the image to a destination image with the specified size and format. | |
| void | FImageCore::SanitizeFloat16AndSetAlphaOpaqueForBC6H
(
const FImageView& InOutImage |
Clamp Float16 colors which aren't encodable in the BC6H format RGB is clamped to non-negative and finite A is set to 1.0 | |
| void | FImageCore::SetAlphaOpaque
(
const FImageView& InImage |
Change alpha channel to opaque, if present | |
| void | FImageCore::TransformToWorkingColorSpace
(
const FImageView& InLinearImage, |
Apply a color space transformation from the source chromaticities to the engine's working color space. | |
| void | FImageCore::TransposeImageRGBABGRA
(
const FImageView& Image |
Swap RB channels on Image. Image must be BGRA8 or RGBA16. | |
| ERawImageFormat::Type | FImageCoreUtils::ConvertToRawImageFormat
(
ETextureSourceFormat Format |
ETextureSourceFormat and ERawImageFormat::Type are one-to-one : | |
| ETextureSourceFormat | |||
| FName | |||
| ETextureSourceFormat | FImageCoreUtils::GetCommonSourceFormat
(
ETextureSourceFormat Format1, |
Returns ETextureSourceFormat which can be used to efficiently store data encoded in both input formats. | |
| int32 | FImageCoreUtils::GetMipCountFromDimensions
(
int32 InSizeX, |
Returns the number of mips that constitute a full mip chain for the given top level mip size. | |
| EPixelFormat | FImageCoreUtils::GetPixelFormatForRawImageFormat
(
ERawImageFormat::Type InFormat, |
EPixelFormat is the graphics texture pixel format it is a much larger superset of ERawImageFormat GetPixelFormatForRawImageFormat does not map to the very closest EPixelFormat instead map to a close one that is actually usable as Texture if *pOutEquivalentFormat != InFormat , then conversion is needed and conversion can be done using CopyImage to OutEquivalentFormat | |
| bool | FImageCoreUtils::IsImageImportPossible
(
int64 Width, |
IsImageImportPossible returns false if the image dimensions are not supported to import if this function returns true, image import might still fail due to further constraints (this constraint is weaker than the one actually required) (see IsImportResolutionValid, which is also still weaker than the final constraint) IsImageImportPossible does not check current Engine config or platform limits, only hard-coded absolute limits |