WriteableBitmap в .NET 4 - PullRequest
       33

WriteableBitmap в .NET 4

2 голосов
/ 10 июня 2010

У меня проблема: я хотел бы использовать метод Render () для объекта WriteableBitmap. Однако, как я заметил, этот метод недоступен без использования сборки Silverlight System.Windows.dll. Мне нужно использовать RenderTargetBitmap в моем проекте (сборка PresentationCore для стандартного .net). Здесь проблема - есть определения некоторых классов в обеих сборках, поэтому они находятся в конфликте.

По сути, мне нужно добавить кое-что в растровое изображение Bgra32. Однако RenderTargetBitmap работает только с Pbgra32. Я обнаружил, что было бы неплохо использовать WriteableBitmap для рендеринга. Может я не прав?

У вас есть идеи?

Заранее спасибо за ответ!

Приветствия

Ответы [ 2 ]

1 голос
/ 30 ноября 2010

Я знаю, что об этом спросили некоторое время назад, но он нашел меня в поиске связанной проблемы, поэтому я решил оставить краткий ответ для всех, кто наткнулся на него.

Включая обасборки Silverlight и WPF НЕ являются хорошей идеей.Практически все, что вам нужно от Silverlight, так или иначе будет в WPF, поэтому, если вы не делаете проект Silverlight (и не используете сборки WPF), не включайте их!

Для вашей проблемы, преобразование междуPbgra и Bgra не особенно сложны и описаны здесь:

http://www.i -programmer.info /рограмма / wpf-workings / 538-rendertargetbitmap-visual-vector-to-bitmap.html .

Кроме того, RenderTargetBitmap делает то же самое, что и метод Render, поэтому вам лучше использовать его самостоятельно.

0 голосов
/ 30 ноября 2010

Преобразуйте ваши входные данные в предварительно умноженную альфу, выполните все вычисления в этом цветовом пространстве и преобразуйте выходные данные обратно. Умножение на альфа не сложно кодировать.

Выполнение всех вычислений в предварительно умноженном альфа-цветовом пространстве часто приводит к лучшему качественному выводу (например, фильтрация работает намного лучше) и имеет и некоторые другие преимущества.

Запись в блоге о многочисленных преимуществах использования PRGBA

...