![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Загрузка bmp в поле [D7, Paradox]
Коля © (2005-02-10 23:24:00)Так загружаю изображение в BLOB поле
var FotoBitmap: TBitmap;
begin
if button=mbRight then begin
FotoBitmap:=TBitmap.Create;
MainDataModule.MainOpenDialog.DefaultExt:='';
MainDataModule.MainOpenDialog.Filter:='BMP(*.bmp)|*.bmp';
MainDataModule.MainOpenDialog.FileName:='';
MainDataModule.QueryRab.Edit;
if MainDataModule.MainOpenDialog.Execute then begin
try FotoBitmap.LoadFromFile(MainDataModule.MainOpenDialog.FileName);
(MainDataModule.QueryRab.FieldByName('FOTO') as TBlobField).Assign(FotoBitmap);
except on exception do;end;
end;
FotoBitmap.Free;
end;
end;
Если размеры изображени <=127*95 или >=129*97 или 96*127 и т.д всё нормально работает.
А если 128*96 то выдаёт EReadError with message "Stream read error".
В чём тут дело?
Desdechado (2005-02-13 11:40:00) [1]тип graphic может знать о формате картинок для их обработки. если ты ему не картинку подсунешь, или в непонимаемой версии формата (сделанным фотиком), то может и ошибка быть
Коля (2005-02-13 09:02:00) [2]Изменил BlockSize на 32768 то же самое
Коля (2005-02-13 08:53:00) [3]Я использую Graphic поле
Desdechado (2005-02-12 15:28:00) [4]какой тип поля используешь для хранения в парадокс-таблице?
Коля (2005-02-12 12:38:00) [5]Во бред получается.
Фотик на 1.3M пикселя. Фоткал с разрешением 1024*768. Открывал фотошопом или пэинтом. Сохранял как BMP то глючило. А если открывал копировал, создавал новый файл и вставлял изображение туда сохранял то все нормально вставлялось.
Кто-нибудь знает что происходит когда я это делаю. И как что-нибудь типа этого сделать в Delphi?
Desdechado (2005-02-11 21:37:00) [6]поиграйся с настройками в БДЕ админе, например, с BLOCK SIZE
Коля (2005-02-11 21:17:00) [7]Переделал как написано выше --тоже самое.
Обнаружил что такая же ошибка при 256*194 512*384 640*480 1024*768
В чём проблема? Мне вообще нужно потому что с фотиков такие изобаржения стандартные и пользователю ничего не надо менять
Johnmen (2005-02-11 10:04:00) [8]
var
bm : TBitmap;
ms : TMemoryStream;
// Чтение
bm:=TBitmap.Create;
ms:=TMemoryStream.Create;
TBlobField(YourQuery.FieldByName('foto')).SaveToStream(ms);
ms.Position:=0;
if ms.Size>0 then bm.LoadFromStream(ms);
...
ms.Free;
bm.Free;
// Запись
ms:=TMemoryStream.Create;
bm.SaveToStream(ms);
ms.Position:=0;
TBlobField(YourQuery.FieldByName('foto')).LoadFromStream(ms);
...
ms.Free;
bm.Free;