如何将 RenderTargetBitmaps 列表组合成单个大型 RenderTargetBitmap?
我通过渲染多个视觉效果创建了一个 RenderTargetBitmaps 列表。然后需要将所有这些 RenderTargetBitmap 组合成一个大的纹理图集(sprite sheet)。
如何将 RenderTargetBitmaps 列表组合成单个大型 RenderTargetBitmap?
我通过渲染多个视觉效果创建了一个 RenderTargetBitmaps 列表。然后需要将所有这些 RenderTargetBitmap 组合成一个大的纹理图集(sprite sheet)。
我不确定 WPF 的直接成像方法有多广泛,BitmapSource 上有 CopyPixels 的方法,理论上您可以在所有位图源上使用 CopyPixel,合并它们并创建一个新的位图源传递新的像素数据。我不确定如何进行实际的合并。
另一种方法是将 BitmapSources 转换为 GDI+,使用它的成像功能合并它们并将结果转换回 BitmapSource
我发现 WPF 中有带有 WritePixels 方法的 WriteableBitmap 类,可以与 RenderTargetBitmaps 的 CopyPixels 方法结合使用。WritePixels 方法允许在 WriteableBitmap 上指定一个像素被复制到的区域,所以我认为这至少在理论上应该有效。
在我找到有关 WriteableBitmap 类之前,我已经移动了打包逻辑。视觉效果已经定位(在渲染时)在一个大的 RenderTargetBitmap 上,因此我不再需要组合多个 RenderTargetBitmap。