QT 中QPainter繪製文字、圖片

1. 把字符串繪製在QPixmap上函數

 
  1. QPixmap MainWindow::text2Pixmap(QString text)spa

  2. {code

  3. QFontMetrics fmt(m_font);orm

  4. QPixmap result(fmt.width(text), fmt.height());blog

  5.  
  6. QRect rect(0,0,fmt.width(text), fmt.height());圖片

  7. result.fill(Qt::transparent);字符串

  8. QPainter painter(&result);it

  9. painter.setFont(m_font);io

  10. painter.setPen(QColor(255,143,36));form

  11. //painter.drawText(const QRectF(fmt.width(text), fmt.height()),Qt::AlignLeft, text);

  12. painter.drawText((const QRectF)(rect),text);

  13. return result;

  14. }

2. 對圖片進行水平拼接

 
  1. //多張圖片拼接合成一張圖片

  2. QPixmap MainWindow::pinjie(QVector<QPixmap> image)

  3. {

  4.  
  5. int image_width=0;

  6. int max_height = 0;

  7. QVector <QPixmap > ::iterator it;

  8. for(it = image.begin();it!=image.end();++it)

  9. {

  10. int width = (*it).width();

  11. image_width += width;

  12. image_width +=5;

  13. if((*it).height()>max_height)

  14. {

  15. max_height =(*it).height();

  16. }

  17. }

  18. QPixmap result_image_h(image_width,max_height);

  19. result_image_h.fill(Qt::transparent);

  20. QPainter painter_h;

  21. painter_h.begin(&result_image_h);

  22. int x_number=0;

  23. for(it = image.begin();it!=image.end();++it)

  24. {

  25. painter_h.drawPixmap(x_number,0,(*it));

  26. x_number += (*it).width();

  27. x_number +=5;

  28. }

  29. painter_h.end();

  30. return result_image_h;

  31. }

3. 把一張圖片繪製在空白圖片上

 
  1. QPixmap MainWindow::zoomOutPix(QPixmap pix ,int addWidth, int addHeight)

  2. {

  3. // addWidth pix增長的寬度,addHeight pix增長的高度

  4. QPixmap res(pix.width() + addWidth, pix.height() + addHeight);

  5. res.fill(Qt::transparent);

  6. QPainter painter(&res);

  7. painter.drawPixmap(addWidth/2, addHeight/2, pix.width(), pix.height(), pix);

  8. return res;

  9. }

4. 把一張圖片繪製在另一張圖片上

 
  1. //一張圖片繪製在另一張圖片上

  2. QPixmap MainWindow::dijia(QPixmap p1, QPixmap p2)

  3. {

  4. //p1做爲底片, p2繪製在p1圖片上

  5. QPainter painter(&p1);

  6. painter.drawPixmap(0,0,p2.width(),p2.height(), p2);

  7. return p1;

  8.  
  9. }

5. 圖片的縮放

使用scaled函數進行圖片的縮放。

 
  1. //縮放

  2. QString str = QString::fromLocal8Bit("(侏羅紀)");

  3. QPixmap p = text2Pixmap(str);

  4. p = p.scaled(100, 30, Qt::KeepAspectRatio, Qt::SmoothTransformation);

6. Qt快捷鍵

添加註釋: Ctrl + /       

代碼格式快速對齊:Ctrl  + A ,Ctrl + I

相關文章
相關標籤/搜索