Я пытаюсь создать приложение с водяным знаком, и мне нужно добавить текст к изображению, и я нашел это руководство, но я новичок в WP7, и кто-нибудь может мне сказать, как это использовать?
Вот какой код я получил от здесь :
public static class WriteableBitmapEx
{
/// <summary>
/// Creates a watermark on the specified image
/// </summary>
/// <param name="input">The image to create the watermark from</param>
/// <param name="watermark">The text to watermark</param>
/// <param name="color">The color - default is White</param>
/// <param name="fontSize">The font size - default is 50</param>
/// <param name="opacity">The opacity - default is 0.25</param>
/// <param name="hasDropShadow">Specifies if a drop shadow effect must be added - default is true</param>
/// <returns>The watermarked image</returns>
public static WriteableBitmap Watermark(this WriteableBitmap input, string watermark, Color color = default(Color), double fontSize = 50, double opacity = 0.25, bool hasDropShadow = true)
{
var watermarked = GetTextBitmap(watermark, fontSize, color == default(Color) ? Colors.White : color, opacity, hasDropShadow);
var width = watermarked.PixelWidth;
var height = watermarked.PixelHeight;
var result = input.Clone();
var position = new Rect(input.PixelWidth - width - 20 /* right margin */, input.PixelHeight - height, width, height);
result.Blit(position, watermarked, new Rect(0, 0, width, height));
return result;
}
/// <summary>
/// Creates a WriteableBitmap from a text
/// </summary>
/// <param name="text"></param>
/// <param name="fontSize"></param>
/// <param name="color"></param>
/// <param name="opacity"></param>
/// <param name="hasDropShadow"></param>
/// <returns></returns>
private static WriteableBitmap GetTextBitmap(string text, double fontSize, Color color, double opacity, bool hasDropShadow)
{
TextBlock txt = new TextBlock();
txt.Text = text;
txt.FontSize = fontSize;
txt.Foreground = new SolidColorBrush(color);
txt.Opacity = opacity;
if (hasDropShadow) txt.Effect = new DropShadowEffect();
WriteableBitmap bitmap = new WriteableBitmap((int)txt.ActualWidth, (int)txt.ActualHeight);
bitmap.Render(txt, null);
bitmap.Invalidate();
return bitmap;
}
}
Если я добавлю в модуль, я получу ошибки, как показано ниже: