Вопрос

Название говорит само за себя ... Я пытался найти другой вопрос, подобный этому, но, должно быть, пропустил его, если он существует. Я ищу что угодно, от базовой библиотеки, заменяющей GAPI, до оболочки .net ... Это для создания хорошего интерфейса, поэтому не нужно 3D ...

Это было полезно?

Решение

Классы System.Drawing в .NET намного мощнее, чем думают люди. Единственное, чего не хватает (что на самом деле очень важно в 2D-графике), это умение читать и писать отдельные пиксели. Технически это возможно при использовании методов GetPixel и SetPixel для объекта Bitmap, но эти методы невообразимо медленны.

К счастью, существует супербыстрая альтернатива, которую вы можете реализовать, вызывая LockBits для растрового изображения и затем напрямую обращаясь к байтовым данным растрового изображения. Я использовал это для хорошего эффекта. Фактически, я провел последнюю неделю, создавая эффект «рыбий глаз» полностью в .NET (без библиотек или вызовов PInvoke вообще).

Этот JPEG довольно дурацкий, но он показывает, что возможно, используя только .NET:

альтернативный текст http://www.freeimagehosting.net/uploads/5fdd250b21.jpg

Другие советы

IMO. Я бы посоветовал как-то захватить буфер кадров и рисовать в нем напрямую, если это возможно, либо используя D3DM, либо использовать службы рисования, предоставляемые Native Platform (GDI), через такие API-интерфейсы, как DrawGradient () и т. д. из coredll.dll и так как Вы находитесь на WM, вы можете использовать aygshell.dll для рисования виджетов.

Вот несколько ссылок ...

1) Использование градиентной заливки из точечной сети
2) Прямое использование градиентной заливки
3) Другие встроенные функции GDI

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top