Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
 Уменьшение размера файла BMP для загрузки в БД FB 2.5.3 (BLOB)  [new]
san7667
Member

Откуда:
Сообщений: 4
Доброго времени суток!
Помогите пожалуйста!!!!!

Бьюсь уже долгое время. Есть программа которая открывает веб камеру, при нажатии на кнопку работает процедура фотофиксации изображения и сохранения в bmp файл (весит 900 kb), необходимо его минимально сжать без потери качества , делал через jpeg, записывал bmp в jpeg, сжимал до 137kb, но при перезаписи сжатого jpeg в bmp возрашается исходный размер bmp файла 900 kb
код:

bmp:= Tbitmap.Create;
jpeg := TJpegImage.Create;
bmp.PixelFormat:=pf24bit;
bmp.LoadFromFile(name);
jpeg.Assign(bmp);
jpeg.CompressionQuality :=100;
jpeg.Compress;    
jpeg.SaveToFile(name);  // сжал и сохранил в размере 137 kb
jpeg.LoadFromFile(name);
bmp.Assign(jpeg); // записал файл но размер снова 900 kb
datamodule1.q_picture.fieldbyname('BITMAP').assign(bmp);


Модератор: Пользуйтесь тегом (кнопкой) SRC для оформления кода, пожалуйста.
5 июл 18, 18:57    [21547184]     Ответить | Цитировать Сообщить модератору
 Re: Уменьешие объема файла BMP для загрузки в БД FB 2.5.3 (blob)  [new]
_Vasilisk_
Member

Откуда: Украина, Харьков
Сообщений: 10598
san7667
необходимо его минимально сжать без потери качества
san7667
делал через jpeg,
Уже смешно.

Почему не хотите использовать архиватор?
5 июл 18, 19:05    [21547210]     Ответить | Цитировать Сообщить модератору
 Re: Уменьешие объема файла BMP для загрузки в БД FB 2.5.3 (blob)  [new]
san7667
Member

Откуда:
Сообщений: 4
Никогда не работал с изображениями
Подскажите примерчик
5 июл 18, 19:09    [21547218]     Ответить | Цитировать Сообщить модератору
 Re: Уменьешие объема файла BMP для загрузки в БД FB 2.5.3 (blob)  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 29224

у FIB+ есть функция сжатия потока BLOB.
если склероз меня не подводит.

Posted via ActualForum NNTP Server 1.5

5 июл 18, 19:11    [21547226]     Ответить | Цитировать Сообщить модератору
 Re: Уменьешие объема файла BMP для загрузки в БД FB 2.5.3 (blob)  [new]
san7667
Member

Откуда:
Сообщений: 4
Мимопроходящий, Похоже в моем случае нет, на превью в поле блоб (лезу в ibexpert) показывет размер в байтах 921564, то есть примерно 900 kb
Легче было сделать конечно ссылку на изображение, а потом по ней выводить куда нибудь в timage, но эти фото в отчет идут fast report
5 июл 18, 19:31    [21547282]     Ответить | Цитировать Сообщить модератору
 Re: Уменьешие объема файла BMP для загрузки в БД FB 2.5.3 (blob)  [new]
Virtual Student
Member

Откуда: Belarus
Сообщений: 289
san7667
но при перезаписи сжатого jpeg в bmp возрашается исходный размер bmp файла 900 kb

А как должно быть?
5 июл 18, 21:37    [21547482]     Ответить | Цитировать Сообщить модератору
 Re: Уменьешие объема файла BMP для загрузки в БД FB 2.5.3 (blob)  [new]
Соколинский Борис
Member

Откуда: Москва
Сообщений: 8523
san7667
необходимо его минимально сжать без потери качества , делал через jpeg...

При сжатии в jpeg всегда происходит потеря качества, даже при качестве 100%.
В JPEG без потерь (loseless JPEG) используется другой алгоритм, который, ЕМНИП в штатной реализации отсутствует.
Насчет потери качества - какие объекты фотографируются?
5 июл 18, 22:04    [21547525]     Ответить | Цитировать Сообщить модератору
 Re: Уменьешие объема файла BMP для загрузки в БД FB 2.5.3 (blob)  [new]
YuRock
Member

Откуда: Донецк
Сообщений: 3613
san7667
превью в поле блоб (лезу в ibexpert) показывет размер в байтах 921564, то есть примерно 900 kb
Как не сложно это признать, но это необходимо сделать - это ты туда его таким и записываешь, а не 137kb. Придется искать ошибку в логике своей программы.

Конечно, логичнее было бы предположить, что это подлый Firebird при чтении блоба автоматически конвертирует его содержимое из jpeg обратно в bmp, но нет.

P.S. Используй 7-zip. Жать будет гораздо лучше и реально без потери качества.
5 июл 18, 22:16    [21547553]     Ответить | Цитировать Сообщить модератору
 Re: Уменьешие объема файла BMP для загрузки в БД FB 2.5.3 (blob)  [new]
AJi
Member

Откуда: Москва
Сообщений: 71
Подскажите пещерному человеку, зачем хранить изображения в базе?
5 июл 18, 23:44    [21547725]     Ответить | Цитировать Сообщить модератору
 Re: Уменьешие объема файла BMP для загрузки в БД FB 2.5.3 (blob)  [new]
Соколинский Борис
Member

Откуда: Москва
Сообщений: 8523
AJi,
это вечный холивар.
Есть, как минимум, один плюс - не надо ломать голову с откатом транзакции.
5 июл 18, 23:47    [21547734]     Ответить | Цитировать Сообщить модератору
 Re: Уменьешие объема файла BMP для загрузки в БД FB 2.5.3 (blob)  [new]
AJi
Member

Откуда: Москва
Сообщений: 71
ну да, из-за такого плюса имеет смысл их туда запихивать да еще и без потери качества:)
5 июл 18, 23:49    [21547739]     Ответить | Цитировать Сообщить модератору
 Re: Уменьешие объема файла BMP для загрузки в БД FB 2.5.3 (blob)  [new]
bk0010
Member

Откуда:
Сообщений: 4659
YuRock
Конечно, логичнее было бы предположить, что это подлый Firebird при чтении блоба автоматически конвертирует его содержимое из jpeg обратно в bmp, но нет.
Firebird не "уиноуатый", конвертация происходит вот тут:
bmp.Assign(jpeg);
.
И bmp будет 900 кб, чем бы он не жал, до тех пор, пока размеры картинки и цветность не изменятся: должна быть отображена каждая точка изображения с заданным разрешением по цветности, откуда берется картинка и сколько в ней реально цветов роли не играет. ИМХО, конечно.
6 июл 18, 00:01    [21547758]     Ответить | Цитировать Сообщить модератору
 Re: Уменьешие объема файла BMP для загрузки в БД FB 2.5.3 (blob)  [new]
alfangur
Member

Откуда:
Сообщений: 9
1. не храните изображения в бд.
2. используйте png.
6 июл 18, 08:57    [21548075]     Ответить | Цитировать Сообщить модератору
 Re: Уменьешие объема файла BMP для загрузки в БД FB 2.5.3 (blob)  [new]
defecator
Member

Откуда:
Сообщений: 38823
alfangur
1. не храните изображения в бд.

дурацкая мысль.
6 июл 18, 09:05    [21548095]     Ответить | Цитировать Сообщить модератору
Все форумы / Delphi Ответить