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()); }

 

posted @ 2021-12-26 16:16  osbreak  阅读(155)  评论(0编辑  收藏  举报