Qt::QImage
// 读图片
QImageReader reader(fileName); reader.setAutoTransform(true); const QImage newImage = reader.read(); if (newImage.isNull()) { return false; }
// 写图片
QImageWriter writer(fileName); if (!writer.write(image)) { return false; }
// 显示图片
if (image.colorSpace().isValid())
image.convertToColorSpace(QColorSpace::SRgb);
imageLabel->setPixmap(QPixmap::fromImage(image));
// 打印图片
QPainter painter(&printer); QRect rect = painter.viewport(); QSize size = imageLabel->pixmap()->size(); size.scale(rect.size(), Qt::KeepAspectRatio); painter.setViewport(rect.x(), rect.y(), size.width(), size.height()); painter.setWindow(imageLabel->pixmap()->rect()); painter.drawPixmap(0, 0, *imageLabel->pixmap());
// 复制
void copy() { QGuiApplication::clipboard()->setImage(image); }
// 粘贴
void paste() { const QImage newImage = clipboardImage(); }
// 缩放
void zoomOut(double factor) { Q_ASSERT(imageLabel->pixmap()); imageLabel->resize(factor * imageLabel->pixmap()->size()); }