Basing off the staff’s post
I repurposed it for your thumbnail gen.
.build file needs "ImageWrapper"
in dependencies
Includes
#include "IImageWrapper.h"
#include "IImageWrapperModule.h"
void UMBMaterialAssignmentSlot::SetSlotParams(const FAssetData& AssetData) {
UTexture2D* CreatedTexture = nullptr;
FString PackageFilename;
const FName ObjectFullName = FName(*AssetData.GetFullName());
TSet<FName> ObjectFullNames;
ObjectFullNames.Add(ObjectFullName);
if (FPackageName::DoesPackageExist(AssetData.PackageName.ToString(), &PackageFilename))
{
FThumbnailMap ThumbnailMap;
ThumbnailTools::LoadThumbnailsFromPackage(PackageFilename, ObjectFullNames,
ThumbnailMap);
FObjectThumbnail* objTN = ThumbnailMap.Find(ObjectFullName);
IImageWrapperModule& ImageWrapperModule = FModuleManager::Get().LoadModuleChecked<IImageWrapperModule>(TEXT("ImageWrapper"));
TSharedPtr<IImageWrapper> ImageWrapper = ImageWrapperModule.CreateImageWrapper(EImageFormat::PNG);
ImageWrapper->SetRaw(objTN->GetUncompressedImageData().GetData(), objTN->GetUncompressedImageData().Num(), objTN->GetImageWidth(), objTN->GetImageHeight(), ERGBFormat::BGRA, 8);
const TArray64<uint8>& CompressedByteArray = ImageWrapper->GetCompressed();
CreatedTexture = FImageUtils::ImportBufferAsTexture2D(CompressedByteArray);
MeshImage->SetBrushFromTexture(CreatedTexture);
}
}