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

Вниз

Загрузка 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.036 c
14-1108634829
uny
2005-02-17 13:07
2005.03.13
win98 долго входит в сеть при dialup, причём она сразу в сети


1-1109447261
Новичек
2005-02-26 22:47
2005.03.13
Запуск процедуры на выполнение.


14-1109064619
Holy
2005-02-22 12:30
2005.03.13
Упала 2000-я. Помогите...


1-1109267295
Fenik
2005-02-24 20:48
2005.03.13
Память, занимаемая массивом, содержащим дин. массивы.


14-1109011424
Doxygen
2005-02-21 21:43
2005.03.13
Объять необъятное





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