Ue5 导入图片

C++部分:

```cpp
// Fill out your copyright notice in the Description page of Project Settings.


#include "SimplePictureToolsLibrary.h"

#include "IImageWrapper.h"
#include "IImageWrapperModule.h"

bool USimplePictureToolsLibrary::LoadImageToTextrue2D(const FString& ImagePath, UTexture2D*& InTexture2D, float& Width,
                                                      float& Higth)
{
	TArray<uint8> ImageResultData;
	FFileHelper::LoadFileToArray(ImageResultData, *ImagePath); //载入文件为二进制数组
	FString Ex = FPaths::GetExtension(ImagePath, false); //取文件的后缀名 , 不带点

	//根据不同的后缀名 输出不同的 图片类型枚举 变量
	EImageFormat ImageFormat = EImageFormat::Invalid;
	if (Ex.Equals(TEXT("jpg"), ESearchCase::IgnoreCase) || Ex.Equals(TEXT("Jpeg"), ESearchCase::IgnoreCase))
	//判断当前后缀名,和 是否要忽略大小写
	{
		ImageFormat = EImageFormat::JPEG;
	}
	else if (Ex.Equals(TEXT("PNG"), ESearchCase::IgnoreCase))
	{
		ImageFormat = EImageFormat::PNG;
	}
	else if (Ex.Equals(TEXT("BMP"), ESearchCase::IgnoreCase))
	{
		ImageFormat = EImageFormat::BMP;
	}
	//获取图片转换模块
	IImageWrapperModule& ImageWrapperModule = FModuleManager::LoadModuleChecked<IImageWrapperModule>("ImageWrapper");
	//根据不同的图片类型 转换成 共享指针
	TSharedPtr<IImageWrapper> ImageWrapperPtr = ImageWrapperModule.CreateImageWrapper(ImageFormat);

	//通过解压后获得 BGRA 颜色数据,与图片格式无关了
	if (ImageWrapperPtr.IsValid() && ImageWrapperPtr->SetCompressed(ImageResultData.GetData(),
	                                                                ImageResultData.GetAllocatedSize())) //判断有效性 和 设置压缩
	{
		TArray<uint8> OutRawData; //跟格式无关的颜色数据
		ImageWrapperPtr->GetRaw(ERGBFormat::BGRA, 8, OutRawData); //获取到数据

		//获取宽高,并创建图片
		Width = ImageWrapperPtr->GetWidth();
		Higth = ImageWrapperPtr->GetHeight();
		InTexture2D = UTexture2D::CreateTransient(Width, Higth, PF_B8G8R8A8, "MyLoadPic"); //创建图片的方法
		if (InTexture2D)
		{
			//为了线程安全先开锁,写入颜色数据之后再进行 锁定
			void* TextrueData = InTexture2D->PlatformData->Mips[0].BulkData.Lock(LOCK_READ_WRITE);
			FMemory::Memcpy(TextrueData, OutRawData.GetData(), OutRawData.Num());
			InTexture2D->PlatformData->Mips[0].BulkData.Unlock();
			InTexture2D->UpdateResource(); //更新资源
			return true;
		}
	}

	return false;
}

```

蓝图部分:

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在 UE5 中,您可以使用以下步骤来切换控件蓝图里的按钮图片: 1. 在 UE4 的资源管理器中,找到您想要使用的图片并将其拖放到场景中。 2. 在控件蓝图中,选择您希望更改图片的按钮。 3. 在按钮的属性面板中,找到“图片”属性并单击其旁边的编辑按钮。 4. 在弹出的编辑器中,选择“使用图像”选项卡。 5. 在“图像”字段中,选择您想要使用的图片资源。 6. 单击“确定”按钮来关闭编辑器,然后在游戏中运行该控件蓝图,您应该能看到按钮的图片已被更改。 ### 回答2: 在UE5中,要切换控件蓝图里面的按钮图片,可以按照以下步骤进行操作: 1. 打开控件蓝图,在蓝图编辑器中找到要切换图片的按钮控件。 2. 在蓝图编辑器的右侧面板中,找到按钮控件的详细信息。可以通过点击控件,然后在右侧面板的“Details”标签中查看或修改其属性。 3. 在属性面板的“Appearance”部分,找到按钮的“Normal Image”属性。 4. 点击“Normal Image”属性旁边的下拉箭头,选择“创建新的材质实例”(Create New Material Instance)。 5. 在弹出的对话框中,为新的材质实例命名,并点击“OK”按钮。 6. 在“Normal Image”属性下方的材质资源属性中,点击右侧的“打开资源编辑器”按钮。 7. 在资源编辑器中,可以选择导入自己的图片或者选择已有的图片资源。点击“导入”按钮,选择图片文件并确认导入。 8. 在资源编辑器中,可以对导入图片进行编辑和调整,如调整大小、位置或添加特效等。 9. 完成编辑后,点击资源编辑器中的“保存”按钮,然后关闭资源编辑器。 10. 回到蓝图编辑器中,可以在材质实例属性中的“Texture”属性中查看刚刚导入图片。 11. 如果需要切换图片,在按钮的蓝图中,可以通过代码或事件触发来修改按钮的“Normal Image”属性,从而切换按钮显示的图片。 12. 最后,保存蓝图并运行游戏,按钮将显示切换后的图片。 通过以上步骤,可以在UE5中切换控件蓝图里面按钮的图片。 ### 回答3: UE5中切换控件蓝图里面的按钮图片可以通过以下步骤实现: 1.在控件蓝图中创建一个按钮(Button)组件,并将其放置在适当的位置。 2.选中该按钮,在Details面板中找到Appearance选项卡下的Style区域。 3.打开Style区域,找到Normal选项,点击右侧的图片选择按钮。 4.在弹出的资源浏览器中选择想要切换为的图片,并点击确认。 5.可以在Hovered、Pressed、Disabled等选项中同样进行图片切换,以满足不同状态下的需求。 6.保存并关闭控件蓝图。 以上步骤完成后,按钮的图片将会根据设置的不同状态进行切换。在游戏或应用中,当鼠标悬停、按下按钮,或按钮处于禁用状态时,相应的图片将会展示出来。 需要注意的是,在UE5中,按钮的各种状态的图片切换是基于Button Style来实现的,通过选择不同的图片资源来更改样式。因此,切换按钮图片时需要提前准备好不同状态的图片资源,并将其与按钮关联起来。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值