Как добавить текст водяного знака в растровое изображение в WinRT?


person Emmie Lewis-Briggman    schedule 16.01.2013    source источник


Ответы (2)


Вы можете визуализировать этот текст в ресурс png и разместить его поверх растрового изображения. Если текст не должен быть динамическим, вам понадобится DirectWrite. В WinRT XAML Toolkit есть метод расширения, который можно использовать для рендеринга текста в WriteableBitmap.

person Filip Skakun    schedule 16.01.2013
comment
Филипп прав. Вы можете использовать статический PNG, который вы подготовили ранее, а затем использовать метод WriteableBitmapEx Blit. - person Rene Schulte; 17.01.2013
comment
К сожалению, все это динамично. - person Emmie Lewis-Briggman; 17.01.2013
comment
Что ж, тогда DirectWrite — это то, что вам нужно. - person Filip Skakun; 17.01.2013
comment
Можете ли вы показать мне пример, что вы имеете в виду? Могу ли я сделать это через SharpDx? - person Emmie Lewis-Briggman; 18.01.2013
comment
Да, вы можете использовать DirectWrite с SharpDx. Вот пример для этого: codeproject.com/Articles/513187/ - person Filip Skakun; 21.01.2013
comment
Я попробую это позже. Если это сработает, я добавлю это к вашему ответу и отмечу его правильно. - person Emmie Lewis-Briggman; 22.01.2013

Это делает работу визуально:

<Grid>
    <Image Source="{Binding MyImage}" />
    <Image Source="{Binding MyWatermark}" />
</Grid>

Это, безусловно, тот же эффект без всей работы. Если вы хотите, чтобы он буквально сделал водяной знак частью исходного изображения, разгрузка на сервис — ваш единственный текущий вариант. Без метода Render() для WriteableBitmap у вас нет другого выбора. Эту проблему не решает даже XAML Toolkit. Это обычная просьба.

Но в зависимости от вашего варианта использования, это может быть именно то, что вам нужно!

Я надеюсь, что это так. Удачи.

person Jerry Nixon    schedule 24.01.2013
comment
Я хочу сделать все это динамически, а затем получить копию изображения в памяти. - person Emmie Lewis-Briggman; 25.01.2013