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

Вниз

Загрузка bmp в поле   Найти похожие ветки 

 
Коля   (2005-02-10 23:24) [0]

Так загружаю изображение в 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".
В чём тут дело?


 
Johnmen ©   (2005-02-11 10:04) [1]

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;


 
Коля   (2005-02-11 21:17) [2]

Переделал как написано выше --тоже самое.
Обнаружил что такая же ошибка при 256*194 512*384 640*480 1024*768
В чём проблема? Мне вообще нужно потому что с фотиков такие изобаржения стандартные и пользователю ничего не надо менять


 
Desdechado ©   (2005-02-11 21:37) [3]

поиграйся с настройками в БДЕ админе, например, с BLOCK SIZE


 
Коля   (2005-02-12 12:38) [4]

Во бред получается.
Фотик на 1.3M пикселя. Фоткал с разрешением 1024*768. Открывал фотошопом или пэинтом. Сохранял как BMP то глючило. А если открывал копировал, создавал новый файл и вставлял изображение туда сохранял то все нормально вставлялось.
Кто-нибудь знает что происходит когда я это делаю. И как что-нибудь типа этого сделать в Delphi?


 
Desdechado ©   (2005-02-12 15:28) [5]

какой тип поля используешь для хранения в парадокс-таблице?


 
Коля   (2005-02-13 08:53) [6]

Я использую Graphic поле


 
Коля   (2005-02-13 09:02) [7]

Изменил BlockSize на 32768 то же самое


 
Desdechado ©   (2005-02-13 11:40) [8]

тип graphic может знать о формате картинок для их обработки. если ты ему не картинку подсунешь, или в непонимаемой версии формата (сделанным фотиком), то может и ошибка быть



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

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

Наверх




Память: 0.48 MB
Время: 0.053 c
1-1109622138
Wistful
2005-02-28 23:22
2005.03.13
почему не работает


1-1109337989
ser35
2005-02-25 16:26
2005.03.13
Помогите разобраться


14-1108479143
GRAND25
2005-02-15 17:52
2005.03.13
Новый футбольный сезон


8-1098777398
Slonco
2004-10-26 11:56
2005.03.13
Как отправить звуковую почту?


1-1109440162
novice_man
2005-02-26 20:49
2005.03.13
Глобализация переменных.