日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【Qt】2D绘图之复合模式

發布時間:2024/4/24 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Qt】2D绘图之复合模式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

00. 目錄

文章目錄

    • 00. 目錄
    • 01. 概述
    • 02. 開發環境
    • 03. 程序示例
    • 04. 附錄

01. 概述

QPainter提供了復合模式(Composition Modes)來定義如何完成數字圖像的復合,即如何將源圖像的像素和目標圖像的像素進行合并。QPainter提供的常用復合模式及其效果如下圖所示。 其中普通的類型是SoiirceOver(通常被稱為alpha混合),就是正在繪制的源像素混合在已經繪制的目標像素上,源像素的alpha分量定義了它的透明度,這樣源圖像就會以透明效果在目標圖像上進行顯示。當設置了復合模式,它就會應用到所有的繪圖操作中,例如畫筆、畫刷、漸變和pixmap/image繪制等。

enum QPainter::CompositionMode:

02. 開發環境

Windows系統:Windows10

Qt版本:Qt5.15或者Qt6

03. 程序示例

程序示例

void Widget::paintEvent(QPaintEvent *) {QPainter painter;QImage image(400, 300, QImage::Format_ARGB32_Premultiplied);// 繪制中心的正方形painter.begin(&image);painter.setBrush(Qt::green);painter.drawRect(100, 50, 200, 200);painter.setBrush(QColor(0, 0, 255, 150));painter.drawRect(50, 0, 100, 100);painter.setCompositionMode(QPainter::CompositionMode_SourceIn);painter.drawRect(250, 0, 100, 100);painter.setCompositionMode(QPainter::CompositionMode_DestinationOver);painter.drawRect(50, 200, 100, 100);painter.setCompositionMode(QPainter::CompositionMode_Xor);painter.drawRect(250, 200, 100, 100);painter.end();painter.begin(this);painter.drawImage(0, 0, image);}

運行結果

這里先在Qlmage上繪制了一個矩形,然后又在這個矩形的4個角分別繪制了4個小矩形,每個小矩形都使用了不同的復合模式,并且使用了半透明的顏色進行填充。 第一個小矩形沒有明確指定復合模式,它默認使用的是SourceOver模式。

04. 附錄

源碼下載:【Qt】2D繪圖之復合模式.rar

總結

以上是生活随笔為你收集整理的【Qt】2D绘图之复合模式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。