crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

sanaforewer
  опции профиля:
сообщение 10.4.2013, 7:16
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 8
Регистрация: 23.3.2012
Пользователь №: 3284

Спасибо сказали: 0 раз(а)




Репутация:   0  


В общем цель - перебрать все изображения в папке и удалить те, что больше размеров 64*64 пикселя

Вот код

QDir dir("G:/Program_Files_2/Apache2.2/htdocs/temp");
QStringList listFiles = dir.entryList(QDir::Files);//("*.jpg", QDir::Files);
foreach (QString file, listFiles) {
QImage img(dir.absoluteFilePath(file));
if((img.width() <= 64)&&(img.height() <= 64)){
QFile file(dir.absoluteFilePath(file));
qDebug() << file.fileName();
}
else{
QFile file(dir.absoluteFilePath(file));
file.remove();
}
}

Результат - из 96 изображений в папке удалил все лишние - НО некоторые изображения, больше чем 64*64 - оставил одно из них прикрепил.
Что не так?

и притом - те изображения, которые остались не удалёнными - их имена есть в Debug, то есть их распознало как изображения и мол размер их меньше чем 64*64.
Прикрепленные изображения
Прикрепленное изображение
 
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
lanz
  опции профиля:
сообщение 10.4.2013, 10:49
Сообщение #2


Старейший участник
****

Группа: Участник
Сообщений: 690
Регистрация: 28.12.2012
Пользователь №: 3660

Спасибо сказали: 113 раз(а)




Репутация:   8  


Цитата
Qt тут вообще не учавствовал.


А это что?
Цитата
QImage img(dir.absoluteFilePath(file));


Цитата
Он удалил почти все большие, но парочку оставил.

Я написал почему это может быть. Проверьте isNull изображений, если он возвращает true, значит Qt не может их загрузить из-за отсутствующего плагина или по другой причине.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
sanaforewer
  опции профиля:
сообщение 10.4.2013, 11:15
Сообщение #3


Новичок


Группа: Новичок
Сообщений: 8
Регистрация: 23.3.2012
Пользователь №: 3284

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(lanz @ 10.4.2013, 10:49) *
Я написал почему это может быть. Проверьте isNull изображений, если он возвращает true, значит Qt не может их загрузить из-за отсутствующего плагина или по другой причине.


Спасибо вам. И правда - isNull для тех самых изображений вернул true
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 11.6.2025, 5:24