22 const FGeometry& geometry = Image_Canvas->GetCachedGeometry();
23 FVector2D localPos = geometry.AbsoluteToLocal(mousePos);
26 const FVector2D canvasSize = geometry.GetLocalSize();
28 localPos.X = FMath::Clamp((localPos.X / canvasSize.X * RT_Canvas->SizeX), 0.f, RT_Canvas->SizeX);
29 localPos.Y = FMath::Clamp((localPos.Y / canvasSize.Y * RT_Canvas->SizeY), 0.f, RT_Canvas->SizeY);
35 FTextureRenderTargetResource* RTResource = RenderTarget->GameThread_GetRenderTargetResource();
42 const int32 Width = RenderTarget->SizeX;
43 const int32 Height = RenderTarget->SizeY;
46 TArray<FColor> Bitmap;
47 Bitmap.AddUninitialized(Width * Height);
50 RTResource->ReadPixels(Bitmap);
53 IImageWrapperModule& ImageWrapperModule =
54 FModuleManager::LoadModuleChecked<IImageWrapperModule>(
"ImageWrapper");
56 TSharedPtr<IImageWrapper> ImageWrapper =
57 ImageWrapperModule.CreateImageWrapper(EImageFormat::PNG);
59 if (!ImageWrapper.IsValid())
66 Bitmap.GetAllocatedSize(),
74 const TArray64<uint8>& PNGData = ImageWrapper->GetCompressed(100);
77 const FString Directory = FPaths::GetPath(FullFilePath);
78 IFileManager::Get().MakeDirectory(*Directory,
true);
80 return FFileHelper::SaveArrayToFile(PNGData, *FullFilePath);