Omicron_Persey_8
Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору LuckyStrike Ну, первое, что бросается в глаза, это пара функций GetPixel/SetPixel. В .NET их производительность ужасна, особенно, если применять их к каждому пикселу bitmap'а. Да и к тому же, чтобы залить bitmap одним цветом не обязятельно делать это попиксельно. Почему бы не нарисовать прямоугольник определенного цвета? Код: Graphics g = Graphics.FromImage(bitmap); // Создаем канву для рисования из Bitmap'а g.Clear(Color.LightBlue); // Заливаем фон g.FillRectangle(Brushes.Red, 10,10,50,50); // Что-нибудь рисуем g.Dispose(); // И удаляем канву, чтобы не мешалась | И если уж совсем нужна попиксельная обработка, то тогда нужно фиксировать в памяти данные bitmap'а и из неуправляемого кода с помощью указателей пробегать по массиву. И засовывай код в теги кода, а то читать неудобно. Добавлено: May_Johnson А чего она в памяти-то? Во время выполнения рисуется что ли? Что мешает ее сохранить? Ну если совсем нужно, то обрати внимание на System.Windows.Media.Imaging.BitmapSource, у которого есть метод Create, позволяющий загружать bitmap из массива пикселов Create(Int32, Int32, Double, Double, PixelFormat, BitmapPalette, Array, Int32) - Creates a new BitmapSource from an array of pixels. Сreate(Int32, Int32, Double, Double, PixelFormat, BitmapPalette, IntPtr, Int32, Int32) - Creates a new BitmapSource from an array of pixels that are stored in unmanaged memory. | Всего записей: 282 | Зарегистр. 02-09-2007 | Отправлено: 08:16 27-05-2009 | Исправлено: Omicron_Persey_8, 08:28 27-05-2009 |
|