Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.04.22;
Скачать: CL | DM;

Вниз

Запьсь 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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.014 c
1-69888
panoff
2002-04-09 11:53
2002.04.22
Юзер создаёт кол-во строк в MENUItem


6-69962
Sender
2002-02-03 21:22
2002.04.22
Передача данных по сети


6-69953
Dmitriy_0
2002-01-29 16:24
2002.04.22
Как организовать собственный SMTP сервер ?


1-69912
CrazyXP
2002-04-08 20:19
2002.04.22
Несколько вопросов


3-69712
Timka
2002-03-26 18:54
2002.04.22
Помогите серенькому!!!