UE5 文字游戏(1) 仅UI截图转换为texture2d(适用于window端)

目录

需求

思路

1.截图并读取到本地

2.本地读取图片并转换为纹理2d

效果展示


找了好多的解决办法,都不管用。这个算是折中的。


需求

将当前的用户控件(ui)截图下来,并赋值到一个texture2d上。

我的需求:文字游戏中,点击存档,将当前的游戏画面转换为一个纹理2d,任何将纹理2d赋值到该存档的头图。


思路

先截图到本地,然后再从本地读取成texture2d。


1.截图并读取到本地

参考:

UE Widget截图功能实现-CSDN博客

cpp 复制代码
.h	
UFUNCTION(BlueprintCallable, Category = "MyFunc", meta = (Keywords = "ScreenShot_"))
		void CaptureUIScreenshot(UUserWidget* Widget ,const FString& SavePath);

.cpp
void UMyScreenShotComponent::CaptureUIScreenshot(UUserWidget* Widget, const FString& SavePath)
{
	
	TSharedRef<SWidget> TargetSWidget = Widget->TakeWidget();
	TArray<FColor> RawData;
	FIntVector OutSize;
	bool bScreenshotSuccessful = FSlateApplication::Get().TakeScreenshot(TargetSWidget, RawData, OutSize);
	if (bScreenshotSuccessful) {
		TArray<uint8> CompressedBitmap;
		FImageUtils::CompressImageArray(OutSize.X, OutSize.Y, RawData, CompressedBitmap);
		FFileHelper::SaveArrayToFile(CompressedBitmap, *SavePath);
	}
}

2.本地读取图片并转换为纹理2d

插件

效果展示

相关推荐
BugPhysician1 天前
影之刃零首发UE崩溃排查:着色器缓存、虚拟内存与驱动版本
ue5·影之刃零·影之刃零报错·影之刃零进不去·ue崩溃·ue引擎崩溃·ue5引擎崩溃
电子云与长程纠缠3 天前
UE5魂系游戏开发教程05
开发语言·学习·游戏·ui·ue5
fanfan_hongyun3 天前
UE5.1 蓝图调用C++方法
ue5
易知微EasyV数据可视化3 天前
UE5 中接入 GDAL:从vcpkg编译到插件打包
ue5
努力学习的小廉3 天前
UE5入门系列(一):环境搭建.md
ue5
fanfan_hongyun3 天前
【UE5.1 创建C++文件】
c++·ue5
努力学习的小廉3 天前
UE5 入门系列(二):编辑器基础操作速通
ue5·编辑器
Дерек的学习记录4 天前
Unreal Engine 5:开关门实现和流程控制
开发语言·学习·ue5
远离UE45 天前
拉格朗日 动力学问题
ue5·图形渲染·图形学·动力学
远离UE410 天前
UE5 Substrate Thin Film 源码拆析
开发语言·javascript·ue5