Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > WPF и Silverlight > Растровые алгоритмы


Автор: Idsa 30.9.2008, 13:40
Мне необходимо реализовать некоторые растровые алгоритмы (например, размытие изображения). Правильно ли я понимаю, что стандартными средствами WPF этого не сделать, и необходимо использовать GDI+ обертку, как в WinForms?

Автор: Kefir 30.9.2008, 21:06
ну насчёт GDI+ не уверен, но суть такова, что обработку надо в любом случае делать ручками. загляни сюда:
http://msdn.microsoft.com/en-us/library/ms735322(VS.85).aspx#customeffects
http://msdn.microsoft.com/en-us/library/ms771475.aspx

Добавлено через 1 минуту и 19 секунд
плюс посмотри здесь http://blogs.microsoft.co.il/blogs/tomershamam/archive/2007/09/21/wpf-image-processing.aspx - интересно

Автор: Idsa 12.10.2008, 20:56
Спасибо за ссылочки.
Насколько я понял, эффекты можно реализовать двумя способами: через эффекты (в 3.5 SP1) при помощи ручного написания шейдеров, либо через WriteableBitmap. Был удивлен, когда натолкнулся на WriteableBitmap: странно, что не видел упоминания о нем в МакДональде.
Вот описание WriteableBitmap в MSDN с хорошим примером: http://msdn.microsoft.com/en-us/library/system.windows.media.imaging.writeablebitmap.aspx
Вот очень интересная статья по WriteableBitmap: http://blogs.msdn.com/jgalasyn/archive/2008/04/17/using-writeablebitmap-to-display-a-procedural-texture.aspx Интересно, что автор приходит к выводу, что WriteableBitmap из .NET 3.5 в 3 раза быстрее GDI+ (который юзали в WinForms). При этом я читал, что в .NET 3.5 SP1 WriteableBitmap гораздо производительнее, так что выгодна по сравнению с WinForms должна быть еще существенней. Кстати вот и эта обзорная статья (must read): http://blogs.msdn.com/tims/archive/2008/05/12/introducing-the-third-major-release-of-windows-presentation-foundation.aspx
Про эффекты и написание шейдеров можно прочитать здесь: http://blogs.msdn.com/greg_schechter/archive/tags/WPF/default.aspx (это все статьи этого блога с тэгом WPF) и здесь: http://www.codeproject.com/KB/WPF/WPFPixelShader.aspx
Про то, как можно получить BitmapSource из массива точек можно прочитать здесь: http://www.interact-sw.co.uk/iangblog/2006/03/10/wpfrawpixels

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)