Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2009.11.29;
Скачать: [xml.tar.bz2];

Вниз

как сохранить картинку в файл   Найти похожие ветки 

 
v1keeee   (2008-12-25 21:26) [0]

Здравствуйте! Помогите пожалуста в вопросе: я пишу программку типа базы данных для хранения и обработки данных использую записть типа

type
 Info = record
    FIO : char[10];
    ... {еще данные}
    foto: char[256]; // <---- вот тут вопрос {не знаю что делать}

вопрос: как сохранить картинку jpg формата в базу данных (файл типа text или byte) чтобы потом прочитать из этой базы методом BlockRead еще и картинку которую сохранил вместе с основными данными?

P.S. Может как нить представить картинку в виде последовательности байт и записывать? только я не знаю как :(


 
Правильный$Вася   (2008-12-25 21:33) [1]


> Может как нить представить картинку в виде последовательности байт

она такая и есть
SaveToStream


 
v1keeee   (2008-12-25 21:38) [2]


> она такая и естьSaveToStream

Извеняюсь если чегото может недопонимаю.. а у какого свойства вызывать этот метод? У image1.picture "SaveToStream" нету :( просто у image1 тоже нету


 
v1keeee   (2008-12-25 21:47) [3]

Еще вот наблюдаю такое: если на компоненте image c загруженной в нем картинкой щелкнуть правой кнопкой мыши и выбрать пункт View as Text
то появляется вот это:

object Image1: TImage
   Left = 16
   Top = 8
   Width = 297
   Height = 286
   Picture.Data = {0A544A504547496D61676511730000F
                       .....
    325D8614C2FF000747F3F0EEBFF003
    000000050012010300010000000100}
   end

получается что в свойстве Picture.Data содержится представление картинки в виде последовательности байт? каким образом это можно получить в переменную типа char или byte чтобы сохранить в файле и потом прочитать с другими данными?


 
Johnmen ©   (2008-12-25 22:00) [4]

SaveToFile+F1 для TGraphic, TBitmap, TIcon и примеры есть...


 
v1keeee   (2008-12-25 22:09) [5]


> SaveToFile+F1 для TGraphic, TBitmap, TIcon и примеры есть.
> ..

пардон, не понял...
Мне нужно записывать функцией BlockWrite запись содержащую поле в виде картинки jpg формата в файл...


 
Johnmen ©   (2008-12-25 22:14) [6]

Да какая разница, что за данные в записи??? Пиши БлокРайтом и всё...


 
Правильный$Вася   (2008-12-25 22:22) [7]


> Да какая разница, что за данные в записи??? Пиши БлокРайтом
> и всё...

разница есть
блоки фиксированной длины, а файлы - произвольной
поэтому сохранить запись в поток, в уж потом блокрайтом


 
Johnmen ©   (2008-12-25 22:25) [8]


> блоки фиксированной длины

И что? Это чему-то мешает?


 
v1keeee   (2008-12-25 22:29) [9]


> поэтому сохранить запись в поток, в уж потом блокрайтом

щас буду пробовать ^-^


 
Johnmen ©   (2008-12-25 22:31) [10]


> щас буду пробовать ^-^

Чушь пробованию не поддается. Это так, к слову...


 
v1keeee   (2008-12-25 22:31) [11]

а какого типа stream создовать чтобы picture.graphic туда засунуть? TMemoryStream или какой?


 
Сергей М. ©   (2008-12-26 08:46) [12]

TMemoryStream (если картинка сравнительно небольшая) или TFileStream (для картинки произвольного размера)


 
Сергей М. ©   (2008-12-26 08:48) [13]


> типа базы данных для хранения и обработки
> данных использую записть типа


Все уже до тебя написано, осталось только воспользоваться готовым - см. TClientDataSet


 
v1keeee   (2008-12-26 09:33) [14]


> TMemoryStream (если картинка сравнительно небольшая) или
> TFileStream (для картинки произвольного размера)

спасиба


 
Виталий Панасенко   (2008-12-26 10:36) [15]

я бы рекомендовал использовать нетипированный файл... записать заголовок(Info=record), далее размер данных картинки и собственно данные


 
v1keeee   (2008-12-26 11:38) [16]


> я бы рекомендовал использовать нетипированный файл... записать
> заголовок(Info=record), далее размер данных картинки и собственно
> данные

вот терь я сам понял чего хотел ))


>  и собственно данные

а данные получить из потока так получается?


 
Виталий Панасенко   (2008-12-26 12:47) [17]

BlockWrite/BlockRead с потоками не работает, насколько я знаю



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2009.11.29;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.007 c
4-1198157287
p_evghenii
2007-12-20 16:28
2009.11.29
Почему SendMessage работает, а PostMessage нет?


8-1201199790
Степан
2008-01-24 21:36
2009.11.29
Доступ к звуку при записи


4-1205738499
kuzulis
2008-03-17 10:21
2009.11.29
SetWaitableTimer не срабатывает


15-1254382256
Андрей75
2009-10-01 11:30
2009.11.29
какая бесплатная программа есть для создание дистрибутива


2-1255524766
MonoLife
2009-10-14 16:52
2009.11.29
"Чужое" окно.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский