FLTK学习笔记4-在FLTK中显示图片(上)
生活随笔
收集整理的這篇文章主要介紹了
FLTK学习笔记4-在FLTK中显示图片(上)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
FLTK學習筆記4-在FLTK中顯示圖片(上)
- Fl_JPEG_Image和Fl_PNG_Image
- Fl_Shared_Image
- 程序示例
在FLTK中,并不是任何時候都可以繪圖的(當然也包括繪制圖片),一般來講我們只能在控件類中的 draw()方法中繪制所需要的圖案。
在FLTK中,顯示圖片通常有以下兩種方法:
創建Fl_Image對象的優點在于FLTK將會緩存Fl_Image對象,因此其重繪速率會比較快。
直接繪制的優點在于更直觀,而且如果圖像數據更改的頻率比重繪的頻率高,則繪制速度更快。
本篇文章用第一種方式繪制圖片。
FLTK中的圖片類Fl_Image是所有圖片類的基類,這里我們主要關注它的子類Fl_JPEG_Image, Fl_PNG_Image和Fl_Shared_Image。
Fl_JPEG_Image和Fl_PNG_Image
Fl_JPEG_Image和Fl_PNG_Image分別用于載入.jpg和.png格式的圖片,其用法類似。這里以Fl_PNG_Image為例來演示其用法:
Fl_PNG_Image tmp = Fl_PNG_Image("dune2000.png"); /* 創建了一個Fl_PNG_Image對象并載入一張圖片 */ Fl_Image* pImg = tmp.copy(400, 300); /* 對剛才載入的圖片進行縮放 */ pBox->image(pImg); /* 在pBox(一個Fl_Box控件)中顯示該圖片 */注意:
Fl_Shared_Image
Fl_Shared_Image可以根據文件的后綴名載入對應圖片,其用法如下:
Fl_Shared_Image* tmp = Fl_Shared_Image::get(dest); /* 載入圖片 */pImg = tmp->copy(400, 300); /* 對剛才載入的圖片進行縮放 */pBox->image(pImg); /* 在pBox(一個Fl_Box控件)中顯示該圖片 */注意:
程序示例
#include <FL/Fl.H> #include <FL/Fl_Double_Window.H> #include <FL/Fl_Shared_Image.H> #include <FL/Fl_JPEG_Image.H> #include <FL/Fl_PNG_Image.H> #include <FL/Fl_Box.H> #include <FL/fl_draw.H> #include <iostream>void pngDisplay(Fl_Box* pBox, Fl_Image* pImg, char* dest){Fl_PNG_Image tmp = Fl_PNG_Image(dest); /* 創建了一個Fl_PNG_Image對象并載入一張圖片 */pImg = tmp.copy(400, 300); /* 對剛才載入的圖片進行縮放 */pBox->image(pImg); /* 在pBox(一個Fl_Box控件)中顯示該圖片 */ }void imageDisplay(Fl_Box* pBox, Fl_Image* pImg, char* dest){Fl_Shared_Image* tmp = Fl_Shared_Image::get(dest); /* 載入圖片 */pImg = tmp->copy(400, 300); /* 對剛才載入的圖片進行縮放 */pBox->image(pImg); /* 在pBox(一個Fl_Box控件)中顯示該圖片 */}int main(){fl_register_images();Fl_Double_Window* window = new Fl_Double_Window(500, 750, "圖片");Fl_Box* pBox1 = new Fl_Box(50, 50, 400, 300, "pBox1");Fl_Box* pBox2 = new Fl_Box(50, 400, 400, 300, "pBox2");Fl_Image* pImg = nullptr;Fl_Image* pPng = nullptr;pngDisplay(pBox1, pPng, (char*)"dune2000.png");imageDisplay(pBox2, pImg, (char*)"pal.jpg");window->end();window->show();return Fl::run(); }這里注意在編譯的時候記得加上-lfltk -lfltk_images -ljpeg -lpng命令(在MSYS2上還要加上-mwindows -DWIN32 -lole32 -luuid -lcomctl32)。
運行結果:
相關鏈接:
專欄:FLTK
FLTK學習筆記3-隨機點名器
總結
以上是生活随笔為你收集整理的FLTK学习笔记4-在FLTK中显示图片(上)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: idea将项目上传到SVN
- 下一篇: Linux CentOS 7安装Orac