Создать Bitmap из части двоичного файла - C#

Узнай цену своей работы

Формулировка задачи:

Есть двоичный файл. Он открыт через BinaryReader. Оттуда прочитаны некоторые данные. Далее необходимо выковырять из этого двоичного файла картинку, проделать некоторые манипуляции с ней и сохранить её на диск. Картинка должна хранится в Bitmap. У Bitmap есть такой вот конструктор: Bitmap(Int32 W, Int32 H, Int32 stride, PixelFormat pxfrm, IntPtr ptr). Высота и ширина картинки есть, формат есть(png), stride можно посчитать из ширины и формата пикселей - не проблема. Осталась одна проблема - IntPtr. Полазил в интернете - не нашел внятного объяснения. Хотелось бы что-то вроде "ptr = file.BaseStream.Position" или "ptr = &file". Уже решил считать байты изображения из "file.256", сохранить их на диск и считать потом через конструктор Bitmap(string filename)... Но хотелось бы не сохранять на диск, а считать напрямую в Bitmap. Мой код:
Листинг программы
  1. string fileUrl = "D:\\files\\file.256";
  2. BinaryReader file = new BinaryReader(new FileStream(fileUrl, FileMode.Open));
  3. Int32 oneByte = file.ReadInt32();
  4. ...
  5. Int32 W = 110, H = 115; //pic W & H
  6. Int64 Position = file.BaseStream.Position; //file position
  7. Int32 picSize = 0x1110; //pic size (bytes)
  8. //Bitmap img = new Bitmap(Int32 W, Int32 H, Int32 stride, PixelFormat pxfrm, IntPtr ptr)
  9. img.SetPixel(13,17,Color.Black); //кое-какие манипуляции с картинкой
  10. img.Save("D:\\fileout"); //pic save
  11. ...
  12. file.Close();

Решение задачи: «Создать Bitmap из части двоичного файла»

textual
Листинг программы
  1. using (var ms = new MemoryStream(imageData))
  2. {
  3.     Bitmap bmp = new Bitmap(ms);
  4. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.2 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы