void KisImageLoader::run() { typedef QHash<KisImageItem*,Data>::iterator Iterator; QImageReader reader; for(Iterator data=m_data.begin(); data!=m_data.end() && m_run; ++data) { reader.setFileName(data->path); qreal w = m_size; qreal h = m_size; if(reader.supportsOption(QImageIOHandler::Size)) { QSizeF imgSize = reader.size(); if(imgSize.width() > imgSize.height()) { qreal div = m_size / imgSize.width(); h = imgSize.height() * div; } else { qreal div = m_size / imgSize.height(); w = imgSize.width() * div; } } reader.setScaledSize(QSize(w,h)); data->image = reader.read(); data->isLoaded = true; emit sigItemContentChanged(data.key()); } }
void ImageLoader::run() { typedef QHash<ImageItem*,Data>::iterator Iterator; QImageReader reader; #ifdef Q_OS_WIN for(Iterator data=m_data.begin(); data!=m_data.end() && m_run; ++data) { data->image = QImage(data->path).scaled(m_size, m_size, Qt::KeepAspectRatio, Qt::SmoothTransformation); data->isLoaded = true; emit sigItemContentChanged(data.key()); } #else for(Iterator data=m_data.begin(); data!=m_data.end() && m_run; ++data) { reader.setFileName(data->path); qreal w = m_size; qreal h = m_size; if (reader.supportsOption(QImageIOHandler::Size)) { QSizeF imgSize = reader.size(); if(imgSize.width() > imgSize.height()) { qreal div = m_size / imgSize.width(); h = imgSize.height() * div; } else { qreal div = m_size / imgSize.height(); w = imgSize.width() * div; } } reader.setScaledSize(QSize(w,h)); data->image = reader.read(); data->isLoaded = true; emit sigItemContentChanged(data.key()); } #endif }