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

Вниз

Как добавить фотографию в поле Graphic?   Найти похожие ветки 

 
Andreich   (2004-02-06 15:34) [0]

Как добавить фотографию в поле Graphic?

Table1.FieldByName("foto").......;


 
MV   (2004-02-06 15:38) [1]

(Table1.FieldByName("foto") as TBlobField).LoadFromFile("C:\PayBoy\OneGirl");


 
Andreich   (2004-02-06 15:57) [2]

Хотел сделать выдает ошибку

form1.Table1.FieldByName("foto").AsVariant:= image1.Picture ;

Пишет не совместимы типы Variant и Picture


 
MV   (2004-02-06 16:06) [3]

Ах, вот ты какой!

Ну, тогда:
1. Из буфера обмена - в базу и в фотку сразу:

var
S: TStream;
begin
if not Clipboard.HasFormat(CF_BITMAP) then begin
ShowMessage("В буфере обмена нет изображения!");
exit
end;

DataSet.DisableControls;
S := DataSet.CreateBlobStream(
DataSet.FieldByName("foto"), bmWrite);
try
try
Image1.Picture.Bitmap.LoadFromClipBoardFormat(cf_BitMap,ClipBoard.GetAsHandle(cf_Bitmap),0);
Image1.Picture.Graphic.SaveToStream(S);
except
on e: Exception do ShowMessage("Ошибка загрузки из буфера обмена:"#13
+e.Message);
end
finally
DataSet.EnableControls;
S.Free;
end;

end;

2. Из картинки:

Image1.Picture.Bitmap.SaveToStream(Table1.FieldByName("foto") as TBlobField);


 
Andreich   (2004-02-06 16:12) [4]

Мне надо вставить картинку в поле из Image почему так не подходит

form1.Table1.FieldByName("foto").AsVariant:= image1.Picture ;

Надо заместо AsVariant поставить as TBlobField но почему именно Blob? Если BlobType у меня FtGraphic???


 
MV   (2004-02-06 16:18) [5]

Ну вы и нудный...

Если не хотите, как все, - делайте, как нравится.


 
Val ©   (2004-02-06 16:18) [6]

>Andreich (06.02.04 16:12) [4]
скажите, а вы ответы читаете, или просто писАть в форум любите?


 
Andreich   (2004-02-06 16:20) [7]

Ну пытаюсь сделать как вы говорите

form1.Table1.FieldByName("foto").Asblobfile:= dbimage1.Picture.bitmap ;

Выдает ошибку [Error] Unit2.pas(162): Undeclared identifier: "Asblobfield"


 
MV   (2004-02-06 16:23) [8]

Издевается!

Где я такой бред приводил:

form1.Table1.FieldByName("foto").Asblobfile:= dbimage1.Picture.bitmap ;

??????


 
Andreich   (2004-02-06 16:23) [9]

Вернее так
form1.Table1.FieldByName("foto").Asblobfield:= dbimage1.Picture.bitmap ;


 
Andreich   (2004-02-06 16:25) [10]

Да даже если так все равно та же самая ошибка

dbImage1.Picture.Bitmap.SaveToStream(form1.Table1.FieldByName("foto") as TBlobField);

[Error] Unit2.pas(239): Undeclared identifier: "TBlobField"


 
MV   (2004-02-06 16:26) [11]

Давай-давай. Попробуй еще AsFoto, AsPhoto, AsImage, AsWhatIwant, AsWhyIAmSoFat, AsWhyIAmSoClever...


 
gsvserg ©   (2004-02-06 16:26) [12]

uses db;


 
Val ©   (2004-02-06 16:28) [13]

не, uses МОЗГИ, блин, честное слово.


 
gsvserg ©   (2004-02-06 16:29) [14]

согласен


 
Andreich   (2004-02-06 16:52) [15]

>MV

Просто пример который ты мне дал не работает:
dbImage1.Picture.Bitmap.SaveToStream(form1.Table1.FieldByName("foto") as TBlobField);

выдает ошибку
[Error] Unit2.pas(239): Undeclared identifier: "TBlobField"


 
VLAD-MAL   (2004-02-06 16:58) [16]

А как насчет простого примера
gsvserg © (06.02.04 16:26) [12]
uses db;
?


 
Romkin ©   (2004-02-06 17:17) [17]

Достали...

function GetStreamImgType(Stream: TStream): TClass;
var
StreamPos: int64;
ImgSign: string;
begin
StreamPos := Stream.Position;
try
//BMP если не определено
Result := Graphics.TBitmap;
//JPEG
SetLength(ImgSign, 4);
Stream.Seek(6, soFromCurrent);
Stream.Read(ImgSign[1],4);
if (UpperCase(ImgSign) = "JFIF") or (UpperCase(ImgSign) = "EXIF") then
Result := Jpeg.TJPEGImage;
//WMF
Stream.Position := StreamPos;
SetLength(ImgSign, 4);
Stream.Read(ImgSign[1],4);
if ImgSign = #$D7#$CD#$C6#$9A then
Result := Graphics.TMetafile;
finally
Stream.Position := StreamPos;
end;
end;

procedure LoadProperImage(Stream: TStream; Picture: TPicture);
var
Img: TGraphic;
StreamPos: int64;
begin
StreamPos := Stream.Position;
Img := TGraphicClass(GetStreamImgType(Stream)).Create;
try
Stream.Position := StreamPos;
Img.LoadFromStream(Stream);
Picture.Graphic := Img;
finally
Img.Free;
end;
end;

function LoadPictureFromBLOB(Picture: TPicture; Field: TBlobField): boolean;
var
Stream: TStream;
begin
Result := False;
if not Field.isNULL then
begin
Stream := TMemoryStream.Create;
try
Field.SaveToStream(Stream);
Stream.Position := 0;
LoadProperImage(Stream, Picture);
Result := True;
finally
Stream.Free;
end;
end;
end;

procedure SavePictureToBlob(Picture: TPicture; Field: TBlobField);
var
Stream: TStream;
begin
if not (Field.DataSet.State in [dsEdit, dsInsert]) then
Field.DataSet.Edit;
Field.Clear;
if Assigned(Picture.Graphic) then
if not Picture.Graphic.Empty then
begin
Stream := TMemoryStream.Create;
try
Picture.Graphic.SaveToStream(Stream);
Stream.Position := 0;
Field.LoadFromStream(Stream);
finally
Stream.Free;
end;
end;
end;

uses DB, Jpeg, Graphics, Classes как минимум

И не надо спрашивать, где взять Picture


 
MV   (2004-02-06 17:20) [18]

А где взять TStream?


 
Val ©   (2004-02-06 17:22) [19]

>Romkin © (06.02.04 17:17) [17]
можно спросить, как прочитать/посмотреть tif? ;)


 
MV   (2004-02-06 17:23) [20]

Пора в другую ветку...


 
Andreich   (2004-02-06 17:45) [21]

Ну а почему этот пример не работает, если все правильно?
dbImage1.Picture.Bitmap.SaveToStream(form1.Table1.FieldByName("foto") as TBlobField);


 
MV   (2004-02-06 17:48) [22]

В Uses стоит DB?


 
Andreich   (2004-02-06 17:53) [23]

>MV (06.02.04 17:48) [22]
>В Uses стоит DB?

да, стоит, я уже не знаю что и делать


 
VLAD-MAL   (2004-02-06 17:54) [24]

И как ругается?


 
Andreich   (2004-02-06 17:57) [25]

dbImage1.Picture.Bitmap.SaveToStream(form1.Table1.FieldByName("foto") as TBlobField);

выдает ошибку
[Error] Unit2.pas(239): Undeclared identifier: "TBlobField"


 
VLAD-MAL   (2004-02-06 17:58) [26]

>MV (06.02.04 17:48) [22]
>В Uses стоит DB?

да, стоит, я уже не знаю что и делать


- тогда, похоже, ты меня обманываешь...


 
residen007   (2004-02-07 22:45) [27]

Решение здесь уже приведено, я лишь хочу спросить -- а на фига в хрупкую таблицу Paradox добавлять blob-объект, не проще ли ссылку на файл с изображением в какой-нибудь директории?



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

Текущий архив: 2004.03.05;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.017 c
14-12511
Кен
2004-01-26 03:01
2004.03.05
Кто нибудь из россиян покупал что нибудь на eBay ? Поделитесь опы


4-12587
alex_***
2003-12-30 15:18
2004.03.05
из hdc получить HWND его окна


3-12239
Алексей Петухов
2004-02-10 12:58
2004.03.05
invalid BLOB length


14-12482
Undert
2004-02-14 14:46
2004.03.05
Подскажите софтинку


14-12538
slippery
2004-02-13 21:42
2004.03.05
Помогите найти!!!