Создать 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. Мой код:
string fileUrl = "D:\\files\\file.256";
BinaryReader file = new BinaryReader(new FileStream(fileUrl, FileMode.Open));
Int32 oneByte = file.ReadInt32();
...
Int32 W = 110, H = 115;                    //pic W & H
Int64 Position = file.BaseStream.Position; //file position
Int32 picSize = 0x1110;                    //pic size (bytes)
//Bitmap img = new Bitmap(Int32 W, Int32 H, Int32 stride, PixelFormat pxfrm, IntPtr ptr)
img.SetPixel(13,17,Color.Black);           //кое-какие манипуляции с картинкой
img.Save("D:\\fileout");                   //pic save
...
file.Close();

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

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

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


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

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

5   голосов , оценка 4.2 из 5
Похожие ответы