Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.03.2012, 05:34   #1
Wolf-alone
 
Регистрация: 16.09.2008
Сообщений: 8
По умолчанию Загрузить картинку в PictureBox

Доброго времени суток!

Подскажите пожалуйста решение следующей задачи:

1. Есть файл (пусть для примера он занимает 100Мб)
2. Заранее известно, что изображение в формате JPEG содержиться внутри этого файла, начиная с 1025-го байта (для примера) и занимает 731Кб (опять же для примера).

То есть, нам заранее известен, начальный и конечный байт этого изображения в некоем файле, который доступен для чтения.

Вопрос заключается в том, как извлечь всё это добро в память (минуя создание файлов на жестком диске), а затем из памяти загрузить в PictureBox?

P.S. Благодарю за внимание!
И сказал Бог: "Тогда я построю свой мир с блэк-джеком и шлюхами!"

(с) Евгений Вольф
Wolf-alone вне форума Ответить с цитированием
Старый 24.03.2012, 10:56   #2
ds.Dante
Старожил
 
Аватар для ds.Dante
 
Регистрация: 06.08.2009
Сообщений: 2,992
По умолчанию

Bitmap.ctor зачем-то обнуляет поток, но можно сначала скопировать нужный участок в MemoryStream, и читать файл уже оттуда.

Код:
const int offset = 2;
const int lenght = 0x70836;
byte[] buffer = new byte[lenght];

using (FileStream fs = new FileStream ("in.bmp", FileMode.Open))
{
	fs.Position = offset;
	fs.Read (buffer, 0, lenght);
}
MemoryStream ms = new MemoryStream (buffer);
Bitmap bmp = new Bitmap (ms);
ds.Dante вне форума Ответить с цитированием
Старый 25.03.2012, 03:46   #3
Wolf-alone
 
Регистрация: 16.09.2008
Сообщений: 8
По умолчанию

Всё гениальное, действительно просто! Спасибо огромное, помогло! Мне казалось, что Bitmap подразумевает работу с форматом BMP (исходя из названия, BMP = BitMap). Оказалось, класс прекрасно работает и с JPEG изображениями!

Ещё раз спасибо!
И сказал Бог: "Тогда я построю свой мир с блэк-джеком и шлюхами!"

(с) Евгений Вольф
Wolf-alone вне форума Ответить с цитированием
Старый 25.03.2012, 03:47   #4
Wolf-alone
 
Регистрация: 16.09.2008
Сообщений: 8
По умолчанию

Всё гениальное, действительно просто! Спасибо огромное, помогло! Мне казалось, что Bitmap подразумевает работу с форматом BMP (исходя из названия, BMP = BitMap). Оказалось, класс прекрасно работает и с JPEG изображениями!

Ещё раз спасибо!
И сказал Бог: "Тогда я построю свой мир с блэк-джеком и шлюхами!"

(с) Евгений Вольф
Wolf-alone вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Загрузить картинку из интернета в ListImage fezilk25 Работа с сетью в Delphi 7 30.07.2011 20:10
как загрузить картинку из интернета пауэрлифтинг Работа с сетью в Delphi 6 02.08.2010 16:49
как загрузить в paintbox картинку? blackstersl Общие вопросы Delphi 7 05.06.2009 18:20
Как загрузить картинку? Editor Работа с сетью в Delphi 11 15.07.2008 23:13
из интернета картинку в имедж загрузить? Лёка Работа с сетью в Delphi 4 13.01.2008 14:35