QImage 類的基本操作

2021-09-26 21:37:52 字數 1941 閱讀 9095

一、顯示方法(兩種):第一種更佳

1、qimage轉qpixmap,然後用qlabel::setpixmap()

2、在paintevent()中直接畫

voidmywindow::paintevent(qpaintevent*)

二. 影象縮放

影象縮放採用scaled函式。函式原型

qimage qimage::scaled ( const qsize & size,qt::aspectratiomode

aspectratiomode = qt::ignoreaspectratio, qt::transformationmode

transformmode = qt::fasttransformation ) const

使用方法如下,還是利用上面的img:

qimage* imgscaled = new qimage;

*imgscaled=img->scaled(width,

height,

qt::keepaspectratio);

ui->label->setpixmap(qpixmap::fromimage(*imgscaled));

scaled函式中width和height表示縮放後影象的寬和高,即將原影象縮放到(width,height)大小。

三. 影象旋轉

影象旋轉可以利用qimage類的transformed函式,向transformed函式傳入qmatrix物件,qmatrix物件指定了旋轉的角度。

**如下:

qimage* imgratate = new qimage;

qmatrix matrix;

matrix.rotate(270);

*imgrotate = img->transformed(matrix);

ui->label->setpixmap(qpixmap::fromimage(*imgrotate));

注意:rotate函式中引數是旋轉的角度,旋轉是按順時針方向旋轉的,上面順時針旋轉270度,即逆時針旋轉90度。

四. 影象連續縮放

有了影象縮放的基礎,就可以實現影象的連續縮放,可以放置乙個橫向滑竿(中文解釋不標準,就是horizontal slider部件 ),滑動滑輪的位置以實現影象連續縮放。

horizontal slider部件指向的值為整型value,即縮放後的影象為

img->scaled(orignalwidth*value/100,

orignalheight*value/100,

qt::keepaspectratio);

orignalwidth和orignalheight為原始影象的寬和高。

注意:在對原始影象進行縮放多少倍數時,在相應的槽函式內只需要呼叫horizontal slider部件物件的setvalue函式即可,因為horizontal slider部件滑竿指向的值一旦變化就會觸發對應的槽函式來對影象進行縮放。

String類的基本操作

string類是表示字串的字串類,該類的介面與常規容器的介面基本相同,再新增了一些專門用來操作string的常規操作,string在底層實際是 basic string模板類的別名typedef basic stringstring 不能操作多位元組或者變長字元的序列。在使用string類時,必須包...

opencv的Mat類基本操作

官方對mat介紹的原話 the class mat represents an n dimensional dense numerical single channel or multi channel array.it can be used to store real or complex va...

C 基本操作 模版類

連續的上機課,但這次的題目真的不難 關於模版類,一天就寫好了 中位數給出乙個整數向量,有乙個長度為k的滑動視窗自左向右在該向量上滑動,每次向右移動乙個數字,計算當前視窗中數字的中位數 輸入 1,9,2,3,1 k 3 輸出 9,2,3 include include using namespace ...