Qt中如何儲存 自畫圖片 為 圖片檔案
先建一個QImage/QPixmap之類的圖片物件,而後在其上邊進行繪製,最後將這個圖片物件儲存為檔案。
方式1:(直接使用圖片類的save()函式)
QPixmap pix(40,40);
QPainter p(&pix);
p.drawText(0,10,"Hello,World");
p.end();
pix.save("a.png");
方式2:(建立檔案,向裡邊寫圖片資料)
QImage iim(500,1900,QImage::Format_RGB32);
QPainter painter(&iim);
painter.setFont(QFont("Times New Roman", 122));
painter.drawText(100,300,"Hello,World");
QFile file("acm.PNG");
if (!file.open(QIODevice::ReadWrite))
{
return;
}
QByteArray ba;
QBuffer buffer(&ba);
buffer.open(QIODevice::WriteOnly);
iim.save(&buffer, "PNG");
file.write(ba);
---------------------------------------------------------------------------------------------------------------------------
注意以下幾點:
1:檔案的儲存路徑有多種形式:
①:如果直接寫成 pix.save("a.png"); 或者QFile file("a.PNG"); 則a.png這個檔案是建立在和該段程式碼所在cpp檔案同目錄下。
②:如果寫成pix.save("./debug/a.png")或者QFile file("./debug/a.PNG"); 則a.png這個檔案是建立在和程式碼所在cpp檔案同目錄下的debug資料夾下。
③:如果寫成pix.save("C:/a.png");或者QFile file("C:/a.png"); 則該檔案是建立在C盤根目錄下。
亦即:此時建立路徑既可以用相對路徑,也可以用絕對路徑。
2:群中原先有人說:用第一種方法時:如果改成QImage則沒效果。 實際上是有效果的,問題出在字型的大小上,當用QImage和QPixmap時:兩種格式的圖片中字型大小是不一樣的,前者差不多比後者要小10倍,所以在用QImage時要讓字型的size大一點!
3:對於QFile, 如果寫成 QFile file("./dou.jpg"); 如果實際dou資料夾下沒有名為dou.jpg的檔案,則在執行到這一句時:系統會在該目錄下建立名為dou.jpg的檔案!
相關推薦
Qt中如何儲存 自畫圖片 為 圖片檔案
先建一個QImage/QPixmap之類的圖片物件,而後在其上邊進行繪製,最後將這個圖片物件儲存為檔案。 方式1:(直接使用圖片類的save()函式) QPixmap pix(40,40); QPainter p(&am
Qt開啟,儲存,另存為圖片
Qt開啟一張圖片並顯示在QLabel控制元件中: QString filename=QFileDialog::getOpenFileName(this,tr("選擇影象"),"",tr("I
Qt中設定widget背景顏色背景圖片的注意事項
在Qt中設定widget背景顏色或者圖片方法很多種:重寫paintEvent() , 調色盤QPalette , 樣式表setStyleSheet等等。 但是各種方法都有其注意事項,如果不注意則很容易陷入麻煩中。[喝小酒的網摘]http://blog.const.net.cn/a/8333.
Qt 中 QLabel 自定義文字的顏色狀態,設定為三種狀態(類似於Qcheckbutton裡面的checked unchecked)
1 自定義設定Qlabel文字顏色狀態。 別的類可以進行類推 #ifndef QCOMPLEXLABEL_H #define QCOMPLEXLABEL_H #include <QObject> #include <QWidget> #inclu
如何在Qt中使用自定義資料型別
這裡我們使用下面這個struct來做說明(這裡不管是struct還是class都一樣): struct Player { int number; QString firstName; QString lastN
Qt中純C++專案釋出為dll的方法(超詳細步驟)
目錄 一般建立方法 匯出普通函式的方法&呼叫方法 匯出類及其成員函式的方法&呼叫方法 眾所周知,我們可以將C++專案中的類以及函式匯出,形成 .dll 檔案,以供其他程式使用,下面將說明Qt環境下的使用方法。 首先建立共享庫,步驟如下:
Java 往TreeSet集合中儲存自定義物件學生,按照學生的年齡進行排序。
Set:無序,不可以重複元素。|--HashSet:資料結構是雜湊表。執行緒是非同步的。保證元素唯一性的原理:判斷元素的hashCode值是否相同。如果相同,還會繼續判斷元素的equals方法,是否為true。|--TreeSet:可以對Set集合中的元素進行排序。底層資料
ffmpeg 壓縮攝像頭採集的圖片為*.H264檔案
主要用opencv開啟攝像頭,採集到資料後,傳輸給ffmpeg ,壓縮為h264資料,h264的檔案可以直接拖到vcl播放器播放 MyEncoder.h #pragma once extern "C" { #include <libavcodec/av
Qt中無處不在的d指標為何方神聖
在研究QCoreApplication類的程式碼時,無意間弄明白了“d_func()”和“d指標”的來源:class Q_CORE_EXPORT QCoreApplication #ifndef QT_NO_QOBJECT : public QObject #endi
Qt中新增自定義Slot函式的方法(VS+Qt)
剛開始學習QT在網上找的資料基本都是使用QT Create進行開發的。VS下開發的學習資料感覺很少很難找的到。視訊教程也基本沒看到過貌似。 因為我們研發中心是使用MFC進行開發開發工具是VS2010 .使用QT開發的話基本我們不會再使用QT Create了。所以把自己的
u-boot 中增加自定義命令hjlcmd2------(新增檔案來定義)
1,在 "[email protected]:/home/hjl/Downloads/uboot/common#" 目錄中新增檔案 cmd_hjl.c ,加上標頭檔案 #include <common.h> &nbs
深度學習【13】tensorflow儲存graph和引數為pb檔案
from tensorflow.python.framework.graph_util import convert_variables_to_constants graph = convert_v
將table中選擇的資料匯出為Execl檔案 JavaScript
<html> <head> <title>將table中選擇的資料匯出為Execl檔案 JavaScript</title> <script language="javascript">...
Android Studio中如何自定義Android BuildConfig配置檔案
一個project會有多個app,不同module中都要配置compileSdkVersion、buildToolsVersion等變數值,這時候每個app中的compile工程如果不能統一,在以後升級裡會很麻煩,所以我們要把這些公共的配置項稱為共享變數。 步驟
在map中儲存struct,及map的檔案輸入輸出
用函式的方法實現: 從map輸出到檔案,map的value是struct #include<map> #include<iostream> #include<string> #include<fstream> using
在QT中新增.lib,.dll還有.h檔案
因為我在工作的過程中,使用的是第三方提供的庫,但是如何將這些庫新增到QT的工程中,是個問題,讓我惱火了很久,怎麼弄都是錯的。 下面,我會對這個問題,進行敘述,希望其他人第一次遇到這種問題的時候,可以輕易的解決。 一.新增第三方的標頭檔案 這個問題再簡單不過了,不
XPath在QT中的使用(QXmlQuery讀取XML檔案)
最近一段時間和Xml檔案算是幹上了,先後用了QXmlStream、Dom、Dhtmlxtree、DhtmlXform方式讀寫Xml檔案。昨天接到任務讓用Xpath方式實現Xml讀取。經過了解在QT中有QxmlQuery類用來實現XPath,接下來就說說這個東東! 1.
在QT中使用tinyxml庫來讀取XML檔案失敗的經歷
增加了一個配置項,XML節點名稱用的數字開頭的,如<11aa>0</11aa> 結果在儲存的時候能成功,但是讀取的時候一直load xml failed。 將其修改成<aa11>0</aa11>之後就好了 特此記錄!
C#實戰小技巧(八):將剪下板中的內容儲存為圖片
進行C#開發時,可以將複製到剪下板中的內容轉為HTML檔案,再將HTML頁面轉為圖片進行儲存,示例效果如下。 被複制的Excel表格: 生成的圖片: 實現上述功能的主要程式碼如下,能夠將從Word、Excel、網頁等地方複製的內容匯出,並儲存為圖片。 程式碼:
MFC中當儲存點陣圖時,圖片為全黑的解決辦法
需要建立相容點陣圖,建立相容DC,然後需要將點陣圖選入DC中,再將螢幕DC的影象拷貝到建立的相容記憶體DC中。 ······ CRect rect1; GetClientRect(&rect1);