我在Qt上創建了一個非常簡單的圖像編輯器。用戶可以打開一個圖像(圖像顯示在QGraphicsView
),他可以順時針或逆時針旋轉。然後他可以保存旋轉後的圖像。這是我的問題。我如何獲得旋轉圖像顯示在QGraphicsView
然後保存它?如何保存QGraphicsView中的圖像?
這裏是我打開圖像文件的代碼。可變圖像是QPixmap
類型,imageObject是QImage
指針。
我在Qt上創建了一個非常簡單的圖像編輯器。用戶可以打開一個圖像(圖像顯示在QGraphicsView
),他可以順時針或逆時針旋轉。然後他可以保存旋轉後的圖像。這是我的問題。我如何獲得旋轉圖像顯示在QGraphicsView
然後保存它?如何保存QGraphicsView中的圖像?
這裏是我打開圖像文件的代碼。可變圖像是QPixmap
類型,imageObject是QImage
指針。
在this method請看:
void QGraphicsView::render(QPainter * painter, const QRectF & target = QRectF(), const QRect & source = QRect(), Qt::AspectRatioMode aspectRatioMode = Qt::KeepAspectRatio)
呈現源rect,這是在視圖座標,從場景 到目標,這是在塗料設備座標,使用畫家。此 功能是用於捕獲視圖的內容到一個塗料 裝置,例如一個QImage的(例如,獲取屏幕截圖)
至於旋轉是有用的,你需要的方法是void QGraphicsItem::setRotation(qreal angle)
或備選地void QGraphicsView::rotate(qreal angle)
- 取決於您是要旋轉項目還是整個視圖。
一種方法是創建一個QPixmap
,然後使用QPainter
將QGraphicsScene
繪製到像素圖上。
# Get the size of your graphicsview
rect = graphicsview.viewport().rect()
# Create a pixmap the same size as your graphicsview
# You can make this larger or smaller if you want.
pixmap = QPixmap(rect.size())
painter = QPainter(pixmap)
# Render the graphicsview onto the pixmap and save it out.
graphicsview.render(painter, pixmap.rect(), rect)
pixmap.save('/path/to/file.png')
非常感謝你在最後的工作中非常有幫助! @BrendanAbel –
而不是使用您的代碼的圖像,爲什麼不只是發佈代碼在您的問題。 –