QImage IconProvider::loadImage(const QString &fileName) const { QFile file(fileName); if (file.open(QIODevice::ReadOnly)) { QImageReader imgReader(&file); if (imgReader.canRead()) { QImage image; if (imgReader.read(&image)) return image; } } return QImage(); }
void ImageView::saveImage() { Exiv2::Image::AutoPtr image; bool exifError = false; if (newImage) { saveImageAs(); return; } setFeedback(tr("Saving...")); try { image = Exiv2::ImageFactory::open(currentImageFullPath.toStdString()); image->readMetadata(); } catch (Exiv2::Error &error) { exifError = true; } QImageReader imgReader(currentImageFullPath); if (!displayPixmap.save(currentImageFullPath, imgReader.format().toUpper(), GData::defaultSaveQuality)) { QMessageBox msgBox; msgBox.critical(this, tr("Error"), tr("Failed to save image.")); return; } if (!exifError) { try { image->writeMetadata(); } catch (Exiv2::Error &error) { QMessageBox msgBox; msgBox.critical(this, tr("Error"), tr("Failed to save Exif metadata.")); } } reload(); setFeedback(tr("Image saved.")); }
QSize mainTaskWidget::getImageSize(QString filename) { QImageReader imgReader(m_currentfile); return imgReader.size(); }
void SdtpCatalogDataProvider::parseNetworkReply( QNetworkReply *reply ) { // // // if( !m_netRequests.contains(reply) ) { qDebug("Orphan request found with url = '%s'", reply->url().toString().toLatin1().constData()); reply->deleteLater(); return; } #ifdef QT_DEBUG qDebug("Network request '%s' took %d ms", reply->url().toString().toLatin1().constData(), m_debug_requestStart[reply].elapsed() ); m_debug_requestStart[reply].restart(); if ( reply->error() != QNetworkReply::NoError ) { qDebug("QNetworkReply error! Code: %d", reply->error()); } #endif QPair<void*, RequestType> pair = m_netRequests[reply]; void* param = pair.first; RequestType type = pair.second; // // HANDLE REDIRECTION // QUrl redirectUrl = reply->attribute(QNetworkRequest::RedirectionTargetAttribute).toUrl(); if ( !redirectUrl.isEmpty() && redirectUrl != reply->url()) { // all non-local thumbnail redirects are disabled! QString redirUrl = redirectUrl.toString(); if ( Thumbnail != type || !redirUrl.contains(QRegExp("is74.ru/", Qt::CaseInsensitive, QRegExp::Wildcard)) ) { QNetworkReply* newReply = m_network->get(QNetworkRequest(redirectUrl)); #ifdef QT_DEBUG debug_addRequestTime(newReply); #endif // replace reply ptr in hash m_netRequests[newReply] = m_netRequests[reply]; m_netRequests.remove(reply); return; } } m_netRequests.remove(reply); switch ( type ) { case FoldersRecursive: { XFolder* parent = static_cast<XFolder*>(param); XFolderList *list = new XFolderList; XFolderDict *dict = new XFolderDict; bool ok = parseFoldersRecursiveData(parent, *reply, *dict, *list); if ( ok ) { emit data(FoldersRecursive, parent, list); emit data(FoldersRecursiveDictionary, parent, dict); } else { delete list; delete dict; emit error(FoldersRecursive, parent); } break; } case Folders: { XFolder* parent = static_cast<XFolder*>(param); XFolderList *list = new XFolderList; bool ok = parseFoldersData(parent, *reply, *list); if ( ok ) emit data(Folders, parent, list); else { delete list; emit error(Folders, parent); } break; } case Files: { XFolder *parent = static_cast<XFolder*>(param); XFileList *list = new XFileList; bool ok = parseFilesData(parent, *reply, *list); if ( ok ) emit data(Files, parent, list); else { delete list; emit error(Files, parent); } break; } case FileDetails: { XFile *file = static_cast<XFile*>(param); XFile *dummy = new XFile(0,0,QString());; bool ok = parseFileDetailsData(dummy, *reply); if ( ok ) emit data(FileDetails, file, dummy); else { delete dummy; emit error(FileDetails, file); } break; } case Thumbnail: { XFile *file = static_cast<XFile*>(param); QImageReader imgReader(reply); QImage *image = new QImage(); *image = imgReader.read(); if ( !image->isNull() ) { emit data(Thumbnail, file, image); } else { delete image; emit error(Thumbnail, file); } break; } case Search: { XFileList *list = new XFileList; bool ok = parseSearchData(*reply, *list); if ( ok ) emit data(Search, NULL, list); else { delete list; emit error(Search, NULL); } break; } case FoldersRecursiveDictionary: default: { qDebug("Unsupported RequetType reply '%d'", type); } } #ifdef QT_DEBUG qDebug("Parsing took %d ms", m_debug_requestStart[reply].elapsed() ); m_debug_requestStart.remove(reply); #endif reply->deleteLater(); }
void DsWindow::uploadNextPhoto() { if (m_transferQueue.isEmpty()) { m_widget->progressBar()->hide(); return; } m_widget->m_imgList->processing(m_transferQueue.first()); QString imgPath = m_transferQueue.first().toLocalFile(); m_widget->progressBar()->setMaximum(m_imagesTotal); m_widget->progressBar()->setValue(m_imagesCount); // screenshots.debian.net only accepts PNG images, 800x600 max MassageType massageRequired = DsWindow::None; // check if format is PNG QImageReader imgReader(imgPath); QByteArray imgFormat = imgReader.format(); if( QString::compare(QString(imgFormat), QString("PNG"), Qt::CaseInsensitive) != 0 ) { massageRequired = DsWindow::NotPNG; } // check if image > 800x600 QImage img = imgReader.read(); if( (img.width() > maxWidth) || (img.height() > maxHeight) ) { massageRequired = DsWindow::ResizeRequired; } // check if we have to RAW file -> use preview image then if( KPMetadata::isRawFile(imgPath) ) { massageRequired = DsWindow::ImageIsRaw; } bool res; if (massageRequired) { if (!prepareImageForUpload(imgPath, massageRequired)) { slotAddScreenshotDone(666, i18n("Cannot open file")); return; } res = m_talker->addScreenshot(m_tmpPath, m_widget->m_pkgLineEdit->text(), m_widget->m_versionsComboBox->currentText(), m_widget->m_descriptionLineEdit->text()); } else { m_tmpPath.clear(); res = m_talker->addScreenshot(imgPath, m_widget->m_pkgLineEdit->text(), m_widget->m_versionsComboBox->currentText(), m_widget->m_descriptionLineEdit->text()); } if (!res) { slotAddScreenshotDone(666, i18n("Cannot open file")); return; } }