我們只能對@的這個(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)將指定字符串寫入圖片中展示給用戶了。
新聞熱點(diǎn)
疑難解答