码迷,mamicode.com
首页 > 其他好文 > 详细

UE4 将本地图片转成UTexture2D 在runtime显示

时间:2015-03-15 02:00:51      阅读:2565      评论:0      收藏:0      [点我收藏+]

标签:

UFUNCTION(BlueprintCallable, Category = "TextureFromDisk")
        static class UTexture2D* GetTexture2DFromDiskFile(const FString& FilePath);
class UTexture2D* UTextureFromDiskFunctionLibrary::GetTexture2DFromDiskFile(const FString& FilePath)
{
    TArray<uint8> RawFileData;
    UTexture2D* MyTexture = NULL;
    if (FFileHelper::LoadFileToArray(RawFileData, *FilePath /*"<path to file>"*/))
    {
        IImageWrapperModule& ImageWrapperModule = FModuleManager::LoadModuleChecked<IImageWrapperModule>(FName("ImageWrapper"));
        // Note: PNG format.  Other formats are supported
        IImageWrapperPtr ImageWrapper = ImageWrapperModule.CreateImageWrapper(EImageFormat::PNG);
        if (ImageWrapper.IsValid() && ImageWrapper->SetCompressed(RawFileData.GetData(), RawFileData.Num()))
        {
            const TArray<uint8>* UncompressedBGRA = NULL;
            if (ImageWrapper->GetRaw(ERGBFormat::BGRA, 8, UncompressedBGRA))
            {
                // Create the UTexture for rendering
                MyTexture = UTexture2D::CreateTransient(ImageWrapper->GetWidth(), ImageWrapper->GetHeight(), PF_B8G8R8A8);

                // Fill in the source data from the file
                void* TextureData = MyTexture->PlatformData->Mips[0].BulkData.Lock(LOCK_READ_WRITE);
                FMemory::Memcpy(TextureData, UncompressedBGRA->GetData(), UncompressedBGRA->Num());
                MyTexture->PlatformData->Mips[0].BulkData.Unlock();

                // Update the rendering resource from data.
                MyTexture->UpdateResource();
            }
        }
    }
    return MyTexture;
}

别忘记头文件的引用

#include "Developer/ImageWrapper/Public/Interfaces/IImageWrapper.h"
#include "Developer/ImageWrapper/Public/Interfaces/IImageWrapperModule.h"

 

UE4 将本地图片转成UTexture2D 在runtime显示

标签:

原文地址:http://www.cnblogs.com/cindyOne/p/4338646.html

(2)
(2)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!