【问题标题】:Merge several images into one将多张图像合并为一张
【发布时间】:2013-07-18 18:38:20
【问题描述】:


我有几张图片,每张图片都放在 writablebitmap 中。每个图像代表一层,每个图像都包含透明度。我需要将这些图像组合成一个,组合算法:显示第一张图像(没有变化),然后绘制第二张图像,首先,具有额外的透明度 X%,之后是第三张图像,具有额外的透明度 Y%,等等。 对于工作,我使用框架 4.5、编程语言 C# 和 VS2012。
感谢您的帮助。

【问题讨论】:

  • 想要的结果是什么?您想仅在屏幕上显示此内容,还是将其保存到图像文件中?你有没有尝试过?
  • 结果只需要显示,我发现只有一种核心方法,从程序计算颜色结果,但我认为 wpf 可以做得更好更快
  • 你不能用适当的Opacity 值覆盖三个图像控件吗?
  • 是的,我可以做到,如果我有三张图像,这是正常的方式,但如果我处理许多图像,我可能会在管理这个额外的图像矢量时遇到问题

标签: c# wpf merge writablebitmap


【解决方案1】:

您可以在代码中动态创建Image 控件并将它们添加到网格或其他面板的Children 集合中。

或者,您可以将 Grid 用作 ItemsControl 的ItemsPanel,并将ItemsSource 属性绑定到具有ImageOpacity 属性的对象集合:

<ItemsControl ItemsSource="{Binding ImageItems}">
    <ItemsControl.ItemsPanel>
        <ItemsPanelTemplate>
            <Grid/>
        </ItemsPanelTemplate>
    </ItemsControl.ItemsPanel>
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <Image Source="{Binding Image}" Opacity="{Binding Opacity}"/>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>

在任何一种情况下,网格都会将所有图像放在一起。

【讨论】:

  • 如果我需要实时合并多张图像,那么 10 张 720p 分辨率的图像将是正常波?
猜你喜欢
  • 1970-01-01
  • 2016-03-31
  • 2017-12-25
  • 2022-07-01
  • 2016-02-25
  • 1970-01-01
  • 2012-03-04
  • 1970-01-01
相关资源
最近更新 更多