『壹』 關於QT實現簡單的圖像處理界面,已經寫好可以轉換圖像灰度的C工程,想將其加在QT中,如何實現謝謝!
要採集視頻要採集DV面視頻
採集器用復雜
簡單效率低:
int qGray ( int r, int g, int b )
Returns a gray value (0 to 255) from the (r, g, b) triplet.
The gray value is calculated using the formula (r * 11 + g * 16 + b * 5)/32.
『貳』 QT中如何實現在圖片上畫出矩形
在程序的目錄下建立一個imageformats文件夾
然後把C:\Qt\2010.05\qt\plugins\imageformats下的用到的庫拷貝過去如果圖片有gif的就拷貝gif的dll文件,如果有jpeg的就拷貝jpeg的dll庫文件
『叄』 Qt 如何將圖片處理成紅外圖片
可以用MFC程序來實現。
運行MFC程序後,在圖片界面上用CFile創建新文件,然後讀取紅外圖片數據函數保存即可。
也可以用專用的SDK與驅動直接調色。
『肆』 怎樣用qt代碼編寫圖片保存格式
qt提供了多個保存圖片的介面,比較常用的介面如下
bool QPixmap::save ( const QString & fileName, const char * format = 0, int quality = -1 ) const
參數說明:
fileName 文件的路徑
可選參數:format 圖片的格式(qt目前支持的格式見下表),如果未設置該值
則根據文件路徑的後綴名來判斷圖片的存儲格式。
可選參數:quality 圖片的質量(可設置成0-100之內的值,數值越大說明保存的質量越好),如果未設置該值,則按照默認的設置來保存圖片。
表一:qt 4.6.3支持的文件格式
格式 描述
BMP Windows Bitmap
JPG Joint Photographic Experts Group
JPEG Joint Photographic Experts Group
PNG Portable Network Graphics
PPM Portable Pixmap
TIFF Tagged Image File Format
XBM X11 Bitmap
XPM X11 Pixmap
bool QImage::save ( const QString & fileName, const char * format = 0, int quality = -1 ) const
參數說明同上;
這里舉個使用QPixmap保存圖片的例子:
QPixmap pixmap;
if(pixmap.load("D:\\images\\source.png"))
{
if(pixmap.save("distance.jpg"))
{
//save image successful
}else
{
//save image failure;
}
}else
{
//load image failure
}
註:如果需要對圖片的保存參數進行更多的設置,可以使用QImageWriter提供的介面來實現
『伍』 qt編程label顯示圖片,如何在圖片上繪制相應圖形呢
繼承QLabel唄
#include <QPainter>
#include <QMouseEvent>
Label::Label(QWidget *parent) :
QLabel(parent)
{
isRelease = true;
point = QPoint(0, 0);
setScaledContents(true);
}
void Label::mousePressEvent(QMouseEvent *e)
{
point = e->pos();
isRelease = false;
update();
}
void Label::mouseMoveEvent(QMouseEvent *e)
{
point = e->pos();
isRelease = false;
update();
}
void Label::mouseReleaseEvent(QMouseEvent *)
{
isRelease = true;
update();
}
void Label::paintEvent(QPaintEvent *)
{
QPainter painter(this);
painter.drawPixmap(rect(),QPixmap("../123.jpg"));
if(!isRelease)
painter.drawEllipse(point,20,20);
}
『陸』 QT 圖片處理
謝謝樓主代碼,能說說怎麼解決的嗎?
『柒』 如何用QT實現在圖片上疊加顯示文字
樓主不用在Widget上畫了,直接用QImage來畫,並直接存儲.
QImage image = QPixmap("C:/Users/Administrator/Pictures/1.jpg").toImage();//絕對路徑
//以你原來的那張圖片來
//構造一個image
QPainter painter(&image); //為這個QImage構造一個QPainter
painter.setCompositionMode(QPainter::CompositionMode_SourceIn);
//設置畫刷的組合模式CompositionMode_SourceOut這個模式為目標圖像在上。
//改變畫筆和字體
QPen pen = painter.pen();
pen.setColor(Qt::red);
QFont font = painter.font();
font.setBold(true);//加粗
font.setPixelSize(50);//改變字體大小
painter.setPen(pen);
painter.setFont(font);
painter.drawText(image.rect(),Qt::AlignCenter,"Hello");
//將Hello寫在Image的中心
int n = 100;//這個為圖片的壓縮度。0/100
image.save("text.png","PNG",n);
//將畫好的圖片保存起來。
//可以將png改為其他格式
『捌』 Qt中如何利用 png 圖片來實現自定義形狀的窗口
使用 Qt::WindowFlags 可以實現一些不同類型的窗口,如:用 Qt::FramelessWindowHint 來實現無邊框窗口,用 Qt::Popup 來實現彈出式的窗口,用 Qt::Tool 來實現工具窗口,用Qt::CustomizeWindowHint 來關閉窗口標題欄以及與 Qt::WindowCloseButton(添加關閉按鈕),Qt::WindowMaximumButtonSize(添加最大化按鈕)聯用來建立只有關閉按鈕和最大化按鈕的窗口,用 Qt::WindowStaysOnTopHint 使窗口永遠在最前端等。 Qt::WidgetAttribute 使窗口支持透明背景以及在關閉後主動銷毀。其它一些常用的 Attribute 有:Qt::WA_AcceptDrops 使 widget 支持拖拽操作,Qt::WA_MouseTracking 使 widget 及時響應滑鼠移動事件(MouseMoveEvent)。 Qt::setMask() 函數對窗口進行部分區域遮掩來實現各種形狀的窗口。部分代碼解釋:頭文件: 1:#ifndef SHAPEDWIDGET_H 2:#define SHAPEDWIDGET_H 3: 4:#include <QWidget> 5:class QPoint; 6:class QPixmap; 7:class ShapedWidget : public QWidget 8: { 9: Q_OBJECT 10:public: 11:explicit ShapedWidget(QWidget *parent = 0); 12: ~ShapedWidget(); 13: 14:private slots: 15:void changeSkin(); 16: 17:protected: 18:void mousePressEvent(QMouseEvent *); 19:void mouseMoveEvent(QMouseEvent *); 20:void paintEvent(QPaintEvent *); 21: 22:private: 23:void initData(); 24:void initVisualComponents(); 25:void setupContextMenu(); 26: 27: QPoint* dragPos_; 28: QPixmap* backgroundPixmap_; 29: }; 30: 31:#endif // SHAPEDWIDGET_H構造: 1: ShapedWidget::ShapedWidget(QWidget *parent) : 2: QWidget(parent, Qt::FramelessWindowHint) //無邊框窗體 3: { 4: initData(); //初始化數據,這個demo裡面就兩個,具體下面有解釋 5: initVisualComponents(); //初始化私有可視部件,這個demo裡面沒有私有的其它部件,所以只做了窗口的一些屬性設置 6: setupContextMenu(); //設置右鍵菜單,分配各種QAction內存空間以及連接SIGNALS和SLOTS 7: setAttribute(Qt::WA_DeleteOnClose); //關閉事件發生後就主動從內存中銷毀窗口 8: setAttribute(Qt::WA_TranslucentBackground); //透明背景支持 9: } 拖拽移動窗體(下面有圖示): 1:void ShapedWidget::mousePressEvent(QMouseEvent *event) 2: { 3:if(event->button() == Qt::LeftButton) 4: { 5: *dragPos_ = event->globalPos() - frameGeometry().topLeft(); 6: event->accept(); 7: } 8: } 9: 10:void ShapedWidget::mouseMoveEvent(QMouseEvent *event) 11: { 12:if(event->buttons() & Qt::LeftButton) 13: { 14: move(event->globalPos() - *dragPos_); 15: event->accept(); 16: } 17: } 窗口繪制: 1:void ShapedWidget::paintEvent(QPaintEvent *) 2: { 3: QPainter painter(this); 4: painter.fillRect(0, 0, backgroundPixmap_->width(), backgroundPixmap_->height(), *backgroundPixmap_); 5: } 更換皮膚: 1:void ShapedWidget::changeSkin() 2: { 3: QAction* source = qobject_cast<QAction*>(sender()); //獲取發送該信號的信號源,並轉換對象 4: backgroundPixmap_->load(source->data().toString()); //因為給每個 QAction 賦了圖片的地址的字元串 5://所以可以通過 data() 來獲取該值,並更新背景圖片的內容 6: resize(backgroundPixmap_->width(), backgroundPixmap_->height()); //窗口大小盡可能小
『玖』 如何使用Qt操作word,實現插入圖片和表格的功能
操作word的步驟:1.
新建一個文件,在繪制好的表格需要插入數據的地方設置書簽(插入-書簽),另存為模版文件
(.dot)。
2.新建一個Qt工程,在main文件中如下定義:#include<QtGui/QApplication#include<QAxWidget#include<QAxObjectintmain(intargc,
char*argv[]){QApplicationapp(argc,
argv);//新建一個word應用程序,並設置為可見QAxWidget*word=newQAxWidget(Word.Application,0,Qt::MSWindowsOwnDC);word-setProperty(Visible,
true);//獲取所有的工作文檔QAxObject*documents=word-querySubObject(Documents);//以文件template.dot為模版新建一個文檔
documents-dynamicCall(
Add(QString),
QString::fromLocal8Bit(
D:/template.dot));//獲取當前激活的文檔QAxObject*document=word-querySubObject(
ActiveDocument);//獲取文檔中名字為text的標簽QAxObject*bookmark_text=document-querySubObject(
Bookmarks(QVariant),
code);//選中標簽,將字元InsertText插入到標簽位置if(!bookmark_text-isNull()){
bookmark_text-dynamicCall(
Select(void));bookmark_text-querySubObject(Range)-setProperty(Text,
InsertText);}//獲取文檔中名字為pic的標簽QAxObject*bookmark_pic=document-querySubObject(
Bookmarks(QVariant),
code);//選中標簽,將圖片插入到標簽位置if(!bookmark_pic-isNull()){
bookmark_pic-dynamicCall(
AddPicture(void));bookmark_pic-querySubObject(Range)-setProperty(
InlineShape,
D:/waitting.gif);}//將文件另存為docbyqt.doc,關閉工作文檔,退出應用程序