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

Вниз

Как добавить фотографию в поле 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.51 MB
Время: 0.008 c
1-12383
Talan
2004-02-25 00:24
2004.03.05
Создание объекта


1-12439
Алексей
2004-02-25 12:50
2004.03.05
ввод числа форматированный, извращённый. как??


1-12320
VID
2004-02-22 20:04
2004.03.05
Срочно! С помощью чего можно запретить изм-е системного времени


4-12582
Aleksandr
2003-12-26 18:46
2004.03.05
Как послать другому приложению строку?


3-12289
Relaxxx
2004-02-06 19:23
2004.03.05
Нужен совет, у меня есть таблица, которая формируется...





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