Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Чтение и запись BMP файла 
:(
    Опции темы
tumanovalex
  Дата 17.12.2006, 00:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 3.1.2005

Репутация: нет
Всего: нет



Нужно считать исходный файл BMP, обработать его и записать в новый BMP файл. Подскажите, пожалуйста, как это сделать на C#? Есть ли в C# что-нибудь уже готовое, чтобы не заниматься разбором заголовка файла и прочими трудоемкими делами. 
PM MAIL   Вверх
mr.DUDA
Дата 17.12.2006, 00:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Смотри класс System.Drawing.Bitmap, для обработки подойдёт либо его же GetPixel/SetPixel (медленно!), либо Graphics созданный через Graphics.FromImage и его методы (DrawLine, FillRectangle, etc.).


--------------------
user posted image
PM MAIL WWW   Вверх
DarkDragon
Дата 17.12.2006, 14:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GradVin
**


Профиль
Группа: Участник
Сообщений: 296
Регистрация: 19.8.2006

Репутация: нет
Всего: 8



Цитата(mr.DUDA @  17.12.2006,  00:47 Найти цитируемый пост)
Смотри класс System.Drawing.Bitmap, для обработки подойдёт либо его же GetPixel/SetPixel (медленно!), либо Graphics созданный через Graphics.FromImage и его методы (DrawLine, FillRectangle, etc.). 

Расскажу как это делается:

Работаем с Bitmap:
Код

    Bitmap bmp = New Bitmap ("C:\mybmp.bmp");
    Color clr = bmp.GetPixel (0,0);
    bmp.SetPixel (0,0,Color.Blue);
    bmp.SetPixel (0,1,Color.FromArgb (12,45,222));
    bmp.Save ("C:\mybmp.bmp"); 


Работаем с Bitmap & Graphics:
Код

   Bitmap bmp = New Bitmap ("C:\mybmp.bmp");
   Graphics g = Graphics.FromImage (bmp);
   g.DrawLine (Pens.Blue,0,0,bmp.Width - 1, bmp.Height - 1);
   bmp.Save ("C:\mybmp.bmp");


не забудь использовать пространственное имя:
Код

using System.Drawing;


Да еще можно работать напрямую с данными Bitmap'a, по средством высокоуровневого указателя, и неуправляемой памятью.
Делается это через:
IntPtr (высокоуровневый указатель)
BitmapData (класс для получения указателя на граф. данные в неуправляемой памети [System.Drawing.Imaging])
PM MAIL   Вверх
tumanovalex
Дата 17.12.2006, 18:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 81
Регистрация: 3.1.2005

Репутация: нет
Всего: нет



Спасибо огромное, попробую, это как раз то, что мне надо.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0467 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.