在flipview中的图像上的水印文本

时间:2014-04-18 11:40:42

标签: c# xaml windows-runtime windows-store-apps winrt-xaml

我使用c#/ xaml创建了一个Windows 8应用程序,允许我的用户拍照并将其发布到社交媒体网络。我使用flipview存储图像,以便他们可以在发布之前查看它们,但我还想在每张图像上自动插入“版权”信息,以便其他人知道他们无法使用它们。这将是一种水印。

我尝试在拍摄后将图像叠加在图像上但到目前为止没有运气。

这是flipview代码:

<FlipView HorizontalAlignment="Left" VerticalAlignment="Top" RequestedTheme="Light" SelectionChanged="FlipView_SelectionChanged">
            <Image Source="Assets/Logo.png" />
            <Image Source="Assets/SplashScreen.png" />
            <Image Source="Assets/SmallLogo.png" />
        </FlipView>


 private void FlipView_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            var flipView1 = new FlipView();
            if (flipView1.Items != null)
            {
                flipView1.Items.Add("Item 1");
                flipView1.Items.Add("Item 2");
            }
            flipView1.SelectionChanged += FlipView_SelectionChanged;
        }

任何有关如何做到这一点的帮助都会很棒!

1 个答案:

答案 0 :(得分:1)

如果您将TextBlock放在像Grid这样的单个面板中,则可以在图片上叠加RenderTargetBitmap.Render()。如果你想将图像和水印真正组合成一个图像 - 它会变得更具挑战性,你有多种选择。

  1. 如果您的目标是Windows 8.1,则会获得WriteableBitmap.PixelBuffer.AsStream()选项,您可以在其中将包含图像和水印的可视树渲染到位图,然后保存。这是最简单的方法,但我不确定你是否能从中获得你想要的分辨率。
  2. 如果您的水印也可以是图像,则可以使用{{1}} API手动组合所有像素,将图像与水印相结合。我认为开源库 - &#34; WriteableBitmapEx&#34;有一些很好的扩展方法可以让它变得简单(可能以&#34; blit&#34;)命名。
  3. 使用Direct2D / DirectWrite最快的方法可能就是这样做,但这可能还有点多了。 SharpDX在那里是你的朋友,所以你不必为此使用C ++。