国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

將指定文字寫入QImage中并保存成圖片

2019-11-08 01:45:09
字體:
供稿:網(wǎng)友
在實(shí)際項(xiàng)目中,我們往往想讓指定的文字連接成一個(gè)整體,不讓用戶對顯示的文字進(jìn)行拆分復(fù)制等操作,只進(jìn)行顯示,也就是說,我們想讓部分字符串以原子的形式顯示給用戶,例如,在即時(shí)通訊軟件中,我們在群里@一個(gè)人是,當(dāng)補(bǔ)全成功后,即為一個(gè)圖片顯示在編輯框中,如下圖:我們只能對@的這個(gè)人名整體進(jìn)行操作,這就用到了接下來講的東西:將字符串寫入圖片中顯示并將圖片保存到本地,其主要代碼如下:
//===================================================================================	//保存路徑(包括文件名)	QString tempImagePath="/Users/Tmp/test.png";	//圖片上的字符串,例如 HELLO	QString imageText="HELLO";	QFont font;	//設(shè)置顯示字體的大小	font.setPixelSize(13);	QFontMetrics fm(font);	int charWidth = fm.width(imageText);	charWidth = fm.boundingRect(imageText).width();	//指定圖片大小為字體的大小	QSize size(charWidth+8, 15);	//以ARGB32格式構(gòu)造一個(gè)QImage	QImage image(size, QImage::Format_ARGB32);	//填充圖片背景,120/250為透明度	image.fill(qRgba(255, 255, 255, 0));	//為這個(gè)QImage構(gòu)造一個(gè)QPainter	QPainter painter(&image);	//設(shè)置畫刷的組合模式CompositionMode_SourceOut這個(gè)模式為目標(biāo)圖像在上。	//改變組合模式和上面的填充方式可以畫出透明的圖片。	painter.setCompositionMode(QPainter::CompositionMode_DestinationOver);	//改變畫筆和字體	QPen pen = painter.pen();	pen.setColor( QColor(0, 141, 239));	painter.setPen(pen);	painter.setFont(font);	//將Hello寫在Image的中心	painter.drawText(image.rect(), Qt::AlignCenter, imageText);	image.save(tempImagePath, "PNG", 100);//===================================================================================其效果如下圖:

截圖放入QQ中效果如下:

代碼所指定的意思已經(jīng)作為注釋嵌入到代碼中了,只要將以上代碼進(jìn)行封裝,就可以實(shí)現(xiàn)將指定字符串寫入圖片中展示給用戶了。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 武平县| 凤翔县| 太和县| 西乡县| 木里| 达尔| 崇礼县| 天峨县| 额济纳旗| 红河县| 六盘水市| 济源市| 大渡口区| 长丰县| 文成县| 桦川县| 龙山县| 泗洪县| 正蓝旗| 广昌县| 大田县| 古交市| 台湾省| 友谊县| 凭祥市| 万安县| 乌鲁木齐县| 万载县| 错那县| 金塔县| 岳阳市| 藁城市| 沈丘县| 锦屏县| 晋中市| 中山市| 安庆市| 依安县| 静海县| 凤翔县| 招远市|