![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Картинки в БД
AlexXn © (2004-06-15 10:39:00)Есть база данных, а в ней есть поле типа BLOB, куда складываются картинки различных форматов(jpg, bmp, wmf...).База не моя. Как достать оттуда картинку? Т.е. как достать определенного формата я знаю, а вот как определить какой формат?
Davids (2004-06-15 19:23:00) [1]У меня база есть а там фотки не тока этих форматов и не знаю как их достать....база на фоксе.....
Davids (2004-06-15 19:10:00) [2]А как их собственно их оттуда доставать ????
Romkin (2004-06-15 11:22:00) [3]
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;
Примечание: у bmp первые символы BM должны быть
AlexXn (2004-06-15 11:12:00) [4]А может кто линки подкинет?
AlexXn (2004-06-15 11:06:00) [5]ОК. Thanks
sniknik (2004-06-15 11:05:00) [6]в любом справочнике/книге описывающей какойто конкретный формат, только см. не общие сведения а где структура описывается.
а можеш просто сравнить свои файлы открыв в hexредакторе.
AlexXn (2004-06-15 10:56:00) [7]А где енто прочитать можно, о префиксах то?
sniknik (2004-06-15 10:54:00) [8]по заголовку (префиксу) в начале файла.