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

Вниз

Помогите побороть BLOB поля и картинки!! Помогите Плииизз!!!   Найти похожие ветки 

 
Romario_123   (2002-11-26 23:17) [0]

У меня есть BLOB поле как мне туда запихнуть картинку а потом ее от туда достать?
Причем нужно не только bitmap ну и jpg и gif и т.п.
Подскажите как?! а то 3 дня уже воюю!! Плииз!


 
Sergey_   (2002-11-27 09:29) [1]

NameOfDataSet_NameOfField.LoadFromFile("МояКартинка.bmp") С bmp проблем нет, с jpg есть, с gif не пробовал. Но тема jpg уже на форуме обсуждалась и вроде какие-то решения были предложены.


 
exit   (2002-11-27 09:48) [2]


procedure TForm1.Button1Click(Sender: TObject);
var
MemStream: TMemoryStream;
Img: TBitmap;
begin
if OpenDialog.execute then
begin
Img := TBitmap.Create;
MemStream := TMemoryStream.Create;
Img.LoadFromFile(OpenDialog.FileName);
Img.SaveToStream(MemStream);
MemStream.Seek(0, soFromBeginning);
Table1.Edit;
Table1Blob.LoadFromStream(MemStream);
Table1.Post;
MemStream.Free;
Img.free;
end;
end;

Это - запихать, а вытаскивать в обратном порядке.


 
exit   (2002-11-27 09:58) [3]

P.S. Казалось бы: зачем так много кода? MemoryStream понадобится если захочешь обрабатывать и jpeg"и


 
exit   (2002-11-27 10:09) [4]

Ладно, напишу и для Jpeg"a:

uses Jpeg;

...

procedure TForm1.Button1Click(Sender: TObject);
var
MemStream: TMemoryStream;
Img: TBitmap;
jImg: TJPEGImage;
begin
if OpenDialog.execute then
try
Img := TBitmap.Create;
jImg := TJPEGImage.Create;
MemStream := TMemoryStream.Create;
Img.LoadFromFile(OpenDialog.FileName);
jImg.Assign(Img);
jImg.CompressionQuality := 60;
jImg.SaveToStream(MemStream);
MemStream.Seek(0, soFromBeginning);
Table1.Edit;
Table1Blob.LoadFromStream(MemStream);
Table1.Post;
finally
MemStream.Free;
Img.free;
jImg.Free;
end;
end;

То есть, имеется в виду, что открываем BMP, а в базу сохраняем уже JPEG.


 
Lola   (2002-11-27 12:22) [5]

Еще вариант из архива "Королевства".

var
St: TMemoryStream;
GraphicClass: TGraphicClass;
NewGraphic: TGraphic;
begin
Ext := AnsiLowerCase(Ext);
if Ext = "bmp" then GraphicClass := TBitmap
else if Ext = "gif" then GraphicClass := TGIFImage
else if Ext = "jpg" then GraphicClass := TJPEGImage
else if Ext = "jpeg" then GraphicClass := TJPEGImage
else if Ext = "ico" then GraphicClass := TIcon
else if Ext = "wmf" then GraphicClass := TMetaFile
else if Ext = "emf" then GraphicClass := TMetaFile
// При желании список можно продолжать до бесконечности,
// но тогда необходимо написать TMyFormatImage = class(TGraphic)
else begin
Picture.Assign(nil);
Exit;
end;
NewGraphic := GraphicClass.Create;
try
St := TMemoryStream.Create;
try
Data.SaveToStream(St);
St.Position := 0;
NewGraphic.LoadFromStream(St);
Picture.Assign(NewGraphic);
finally
St.Free;
end;
finally
NewGraphic.Free;
end;
end;

где Picture - свойство Picture:TPicture у любого объекта иги имеющего,
Data - поле, содержащее саму кортинку,
Ext - расширение.


 
Romario_123   (2002-11-27 15:25) [6]

Ага всем спасибо!
ТОгда есть еще вопрос...
запихиваю я в BLOB поле так как написать
а вот достать не могу... :((( в чем ощибка?
Stream3:=TMemoryStream.Create;
Stream2:=RecipT.CreateBlobStream(RecipT.FieldByName("img"), bmRead);
Stream2.Seek(0,0);
stream2.read(Stream3,Stream2.Size);
Stream3.Seek(0,0);
stream3.SaveToFile("c:\233.jpg"); //все нормально сохранеят..
Image1.Image.Graphic.LoadFromStream(Stream3); //Ошибка !!!



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

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

Наверх




Память: 0.46 MB
Время: 0.007 c
6-51855
delpher_gray
2002-10-16 13:09
2002.12.16
Передача файлов через сокеты


3-51622
AndreyAGSoft
2002-11-28 11:34
2002.12.16
Тип поля


7-51981
TankMan
2002-10-13 02:33
2002.12.16
Как узнать, где находится панель ТаскБара?


3-51584
Bakch
2002-11-27 12:51
2002.12.16
---|Ветка была без названия|---


1-51792
tytus
2002-12-05 01:36
2002.12.16
memo





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