Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Базы данных под .NET > как хранить картинки bmp, gif, jpeg в базе данных


Автор: RWander 11.7.2007, 14:17
Как хранить картинки  в базе данных?  smile 

Автор: Azzdorf 11.7.2007, 15:01
а может сдеся
 smile http://forum.vingrad.ru/index.php?showtopic=78943&view=findpost&p=618422

Автор: RWander 11.7.2007, 15:31
там про документ ворд, а мне нужно хранить картинки. Я понимаю, что нужно использовать image, но выдает ошибку, мол немогу переконвертировать Image в byte[], в этом то и проблема  smile  smile 

Автор: Azzdorf 11.7.2007, 16:12
а может попробывать сериализацию преминить, взять  Image - сделать с него другой хвайл, например ТХТ и после в БД, если почекаеш до вечерка (+2 по Гринвичу, сейчас 16:00), то примерчик попробую сошкрябать, среды под рукой нет

Автор: Wanderer2019 11.7.2007, 16:29
ну если речь идет о переводе обыкновенной картинки в byte, то мне кажется буфером тут особо пользоваться то и не надо....
например вот так можно

Код

 System.IO.Stream str = new System.IO.FileStream(@"ine.png", System.IO.FileMode.Open);
            System.IO.BinaryReader br = new System.IO.BinaryReader(str);
            byte[] img_bytes = br.ReadBytes((int)br.BaseStream.Length);//получаем собстно массив байт

            System.IO.Stream old_str = new System.IO.MemoryStream(img_bytes);//а здесь создаю новый поток и читаю туда эти байты

            Image img = Image.FromStream(old_str);//далее для демонстрации сохраняю картинку
            img.Save(@"line2.png");

Автор: Fighter 11.7.2007, 17:54
Цитата(RWander @  11.7.2007,  15:31 Найти цитируемый пост)
там про документ ворд, а мне нужно хранить картинки. Я понимаю, что нужно использовать image, но выдает ошибку, мол немогу переконвертировать Image в byte[], в этом то и проблема     


В одних БД есть специальные поля для картинок. А так, у большинства БД есть тип поля BLOB - там ты сохранишь что угодно, так как это все будет храниться в двоичном виде. Кстати, как работать с BLOB полями в .NET  - тоже вопрос, меня самого интересующий, кстати, возможно надо будет топик такой создать. 

Автор: RWander 11.7.2007, 22:42
Wanderer2019, спасибо, буду пробавать)

Автор: RWander 21.7.2007, 17:31
Цитата(Wanderer2019 @ 11.7.2007,  16:29)
ну если речь идет о переводе обыкновенной картинки в byte, то мне кажется буфером тут особо пользоваться то и не надо....
например вот так можно

Код

 System.IO.Stream str = new System.IO.FileStream(@"ine.png", System.IO.FileMode.Open);
            System.IO.BinaryReader br = new System.IO.BinaryReader(str);
            byte[] img_bytes = br.ReadBytes((int)br.BaseStream.Length);//получаем собстно массив байт

            System.IO.Stream old_str = new System.IO.MemoryStream(img_bytes);//а здесь создаю новый поток и читаю туда эти байты

            Image img = Image.FromStream(old_str);//далее для демонстрации сохраняю картинку
            img.Save(@"line2.png");

В продолжении темы:

а если мне нужно сохранить изображение не из файла а из pictureBox.Image, то как это реализовать? Т.е. поток должен быть не из файла @"ine.png", а из pictureBox.Image.

Автор: mr.DUDA 21.7.2007, 18:12
RWander, я ответил в топике в общих вопросах. Плз, один топик - один вопрос.

Автор: RWander 21.7.2007, 18:14
mr.DUDA, ок! больше не буду)

Автор: roatueque 8.2.2023, 22:43
Модератор: Сообщение скрыто.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)