利用QPainter將文字繪制到一張QImage上時,發現文字邊緣有一點點的灰色邊緣,但是在使用QWidget進行繪制時,卻沒有這個灰邊
下面是我期待的效果

但是這是繪制后的實際效果

請解答一下怎么解決這個問題
uj5u.com熱心網友回復:
這是我使用的代碼
QPainter painter(&m_canvasImage);
painter.setRenderHints(QPainter::TextAntialiasing | QPainter::SmoothPixmapTransform);
painter.setBrush(Qt::NoBrush);
painter.setFont(item->font());
painter.setPen(QPen(QColor(Qt::red)));
QRect textRect(rect);
painter.drawText(textRect,"這是測驗的文字");
uj5u.com熱心網友回復:
參考下這篇文章:https://blog.csdn.net/yejin_tianming/article/details/105113668?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522161388220216780269875918%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=161388220216780269875918&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-2-105113668.pc_search_result_cache&utm_term=setCompositionMode試試,供參考:
QPainter painter(&m_canvasImage);
painter.setRenderHints(QPainter::TextAntialiasing | QPainter::SmoothPixmapTransform);
painter.setCompositionMode(QPainter::CompositionMode_DestinationOver);//圖片疊加模式
painter.setBrush(Qt::NoBrush);
painter.setFont(item->font());
painter.setPen(QPen(QColor(Qt::red)));
QRect textRect(rect);
painter.drawText(textRect,"這是測驗的文字");
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/261882.html
標籤:工具平臺和程序庫
上一篇:Qt制作視頻播放器遇到的問題
下一篇:在C中使用中文,本地化全攻略
