![]() |
|
|
![]()
|
|
| ecspertiza |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 763 Регистрация: 3.11.2008 Где: г.Смоленск Репутация: 4 Всего: 5 |
Вот вопрос как перевести средствами QT BMP в Jpeg? Просто требуется хранить картинки в БД, а в BMP они слишком много весят.
|
|||
|
||||
| SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
QPixmap::loadFromData(const QByteArray & data, const char * format = 0, Qt::ImageConversionFlags flags = Qt::AutoColor)
QPixmap::save (QIODevice * device, const char * format = 0, int quality = -1 ) const Первый вариант для загрузки из BLOB'a. Второй для сохранения уже загруженного BMP изображения в выбранном формате в QBuffer.
Потом этот QByteArray передается в SQL запрос через bind для BLOB поля. |
|||
|
||||
| ecspertiza |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 763 Регистрация: 3.11.2008 Где: г.Смоленск Репутация: 4 Всего: 5 |
Тогда ещё вопрос как проверить разрешение картинки, есть вариант считать её имя, и проверить 3 последних символа, но насколько я знаю формат задаётся не 3 последними буквами а первыми байтами файла, или может символов хватит?
|
|||
|
||||
| SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
Ты хочешь проверить разрешение до выгрузки картинки из базы ? А так QPixmap::height(), QPixmap::width()
|
|||
|
||||
| ecspertiza |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 763 Регистрация: 3.11.2008 Где: г.Смоленск Репутация: 4 Всего: 5 |
Ну ето я неправильно описал, я хочу сделать проверку, при добавлении картинки в базу, если картинка не jpeg то преобразуем её в jpeg и добавляем в базу, под разрешением я имел ввиду последние три символа в имени файла, вот я думаю как проверять формат файла тоесть какой он BMP или JPEG. Есть вариант считать её имя, и проверить 3 последних символа, но я вот думаю насколько это эффективно.
|
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 1 Всего: 459 |
ecspertiza, все популярные графические форматы имеют сигнатуры, в начале файла. Последовательность байтов определяющая формат. Проверять ее надежнее чем расширение файла, при этом не важен источник данных то ли это реальный файл, то ли просто буфер байтов из неизвестного источника.
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| NewDima |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 922 Регистрация: 20.2.2006 Где: <?here?> Репутация: нет Всего: 12 |
это еще при условии, что мы не уверены что данному расширению файла действительно соответствует данный формат изображения. А если уверены и время является критическим ресурсом, то пойдет и по расширению, тем более, если файлов очень много
|
|||
|
||||
| SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
Если тебе удалось загрузить картинку через QPixmap, то она уже не имеет формата, это просто картинка. |
|||
|
||||
![]()
|
| Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель. |
| 1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |