调试网址:在线图像转Base64 - 码工具 (matools.com)
注意要加(data:image/png;base64,)
FString UBasicFuncLib::LoadImageToBase64(const FString& ImagePath)
{
TArray<uint8> ImageData;
// Step 1: 读取图片文件到字节数组
if (!FFileHelper::LoadFileToArray(ImageData, *ImagePath))
{
return "false";
}
// Step 2: 可以选择将字节数组转换为UTexture,如果需要,这一步可以跳过
// 在这个例子中,我们假设图片文件是PNG格式
IImageWrapperModule& ImageWrapperModule = FModuleManager::LoadModuleChecked<IImageWrapperModule>(FName("ImageWrapper"));
TSharedPtr<IImageWrapper> ImageWrapper = ImageWrapperModule.CreateImageWrapper(EImageFormat::PNG);
if (ImageWrapper.IsValid() && ImageWrapper->SetCompressed(ImageData.GetData(), ImageData.Num()))
{
// 这里你可以获取解码后的原始像素数据,如果需要的话
// const TArray<uint8>* RawImageData = nullptr;
// ImageWrapper->GetRaw(ERGBFormat::RGBA, 8, RawImageData);
}
// Step 3: 将字节数组编码为Base64字符串
FString OutBase64 = FBase64::Encode(ImageData);
return OutBase64;
}