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

Вниз

Запьсь JPEG в поле типа Image   Найти похожие ветки 

 
Макс   (2002-03-06 11:14) [0]

Есть изображение TJpegImage и соответствующее поле в БД (тип поля Image). Вопрос как одно (JpegImage) поместить в другое (поле БД), и в последующем произвести обратную операцию (соотв. из поля БД в JpegImage).
Спасибо.


 
doker   (2002-03-07 20:15) [1]

Лучше вообще не хранить картинки в БД (MS SQL отводит место под имидж страницами,- имидж - Битмап - посему по сети тащится медленно, да еще хочешь компресовать в jpg) проще прошарить на юзеров каталог и там картинки хранить - работает в ~ 1.5 р. быстрее.

Если уж надо, то как-нибудь так из БД тащить
Image1.Picture.Assign(ADODataSet1.FieldByName("Picture"));
в TImage картинка выводится и делай с ней что хошь...


 
Delirium   (2002-03-07 20:45) [2]


procedure TForm1.Button1Click(Sender: TObject);
var J:TJpegImage;
S:TMemoryStream;
begin
// Получили JPEG
J:=TJpegImage.Create;
J.LoadFromFile("e:\Iam.jpg");
// Поместили JPEG в Stream
S:=TMemoryStream.Create;
J.SaveToStream(S);
// Поместили Stream в BLOB
ADOQuery1.Edit;
TBLOBField(ADOQuery1.FieldByName("Im")).LoadFromStream(S);
ADOQuery1.Post;
// Очистили всё
J.Free;
S.Free;
end;

procedure TForm1.Button2Click(Sender: TObject);
var J:TJpegImage;
S:TMemoryStream;
begin
// Креатим JPEG и Stream
J:=TJpegImage.Create;
S:=TMemoryStream.Create;
// Поместили BLOB в Stream
TBLOBField(ADOQuery1.FieldByName("Im")).SaveToStream(S);
// Поместили Stream в JPEG
J.LoadFromStream(S);
// Очистили Stream
S.Free;
// А в J теперь картинка
end;

Поле Im типа Image, на самом деле писать туда можно и сразу из файла TBLOBField(ADOQuery1.FieldByName("Im")).LoadFromFile("e:\Iam.jpg"); но для наглядноси показал весь процесс.

> doker

В Image, можно помещать не только Bitmap или Jpeg, но и любые другие файлы (BLOB он и есть BLOB).


 
Zak   (2002-03-26 11:05) [3]

Вот тут какойто портак... т.е. при занесении в J и после этого сохранение типа J.SaveToFile(...) получается файл равный 0?
Может это потому что файл jpg неправильно записывается в базу?
или может неправильно передается из потока?!


 
Zak   (2002-04-01 09:07) [4]

И еще по теме doker а как создать на диске запароленый каталог чтоб туда занести файлы (и в базе прописать например пути в картинкам)?



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

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

Наверх





Память: 0.45 MB
Время: 0.007 c
6-69951
Димка-1200
2002-02-11 10:03
2002.04.22
Народ, как с помощью TWebBrowser (или чего другого) заполнить поля в HTML


3-69681
tovSuhov
2002-03-29 11:19
2002.04.22
Вопрос по DBMS_PIPE


4-70062
Eraser
2002-02-18 13:44
2002.04.22
О CreateFile в win2k


1-69869
SONY
2002-04-09 07:08
2002.04.22
Замена симовла перевода строки на тег <br>


6-69960
Garmahis
2002-02-07 23:59
2002.04.22
Работа с реестром.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский