UE Widget截图功能实现

转了一圈都没找到UE4 widget 截图功能,最接近的就只有屏幕截全屏功能了,所以最后只能自己实现了,贴关键代码

	TSharedRef<SWidget> TargetSWidget = Widget->TakeWidget();
	TArray<FColor> RawData;
	FIntVector OutSize;
	bool bScreenshotSuccessful = FSlateApplication::Get().TakeScreenshot(TargetSWidget, RawData, OutSize);
	if (bScreenshotSuccessful) {
		FString ScreenShotName = FPaths::ProjectSavedDir() + TEXT("ScreenShot.png");
		TArray<uint8> CompressedBitmap;
		FImageUtils::CompressImageArray(OutSize.X, OutSize.Y, RawData, CompressedBitmap);
		FFileHelper::SaveArrayToFile(CompressedBitmap, *ScreenShotName);
	}

用个静态函数库包装一下就可以在蓝图使用了,读者可根据需要更改存储的名字。

传入参数Widget即可获取截图存放在项目中的Save文件夹下,取名ScreenShot.png。关键代码是调用FSlateApplication::TakeScreenshot();得到关键的颜色信息和大小信息然后再存储为图片,网上还有可存储为jpg等其他格式的方法,在此我就不实现了。

参考:(1条消息) UE4中实现截图功能并保存到指定路径_蓬 蒿 人的博客-CSDN博客_ue4高分辨率截图保存在哪里啊

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值