网站改中文,扁平化网站配色,手机网站定制咨询,广告推广策划方案前言
SDL中内置加载BMP的API#xff0c;使用起来会更加简单#xff0c;便于初学者学习使用SDL
如果需要加载JPG、PNG等其他格式的图片#xff0c;可以使用第三方库#xff1a;SDL_image 测试环境#xff1a;
ffmpeg的4.3.2自行编译版本windows环境qt5.12sdl2.0.22…前言
SDL中内置加载BMP的API使用起来会更加简单便于初学者学习使用SDL
如果需要加载JPG、PNG等其他格式的图片可以使用第三方库SDL_image 测试环境
ffmpeg的4.3.2自行编译版本windows环境qt5.12sdl2.0.22mingw编译器 完整代码
SdlShowBmpThread.h
#ifndef SDLSHOWBMPTHREAD_H
#define SDLSHOWBMPTHREAD_H#include QObject
#include QThreadclass SdlShowBmpThread : public QThread
{Q_OBJECT
public:explicit SdlShowBmpThread(QObject *parent nullptr);~SdlShowBmpThread();signals:// QThread interface
protected:virtual void run() override;
};#endif // SDLSHOWBMPTHREAD_HSdlShowBmpThread.cpp
#include sdlshowbmpthread.h#include QDebug
#include SDL2/SDL.h#define END(judge, func) \if (judge) { \qDebug() #func error SDL_GetError(); \goto end; \}SdlShowBmpThread::SdlShowBmpThread(QObject *parent) : QThread(parent)
{// 当监听到线程结束时finished就调用deleteLater回收内存connect(this,SdlShowBmpThread::finished,this,[](){this-deleteLater();qDebug()SdlPlayWavThread线程结束;});
}SdlShowBmpThread::~SdlShowBmpThread()
{// 断开所有的连接disconnect();// 内存回收之前正常结束线程requestInterruption();// 安全退出quit();wait();qDebug() this 析构内存被回收;
}void SdlShowBmpThread::run()
{// 像素数据SDL_Surface *surface nullptr;// 窗口SDL_Window *window nullptr;// 渲染上下文SDL_Renderer *renderer nullptr;// 纹理直接跟特定驱动程序相关的像素数据SDL_Texture *texture nullptr;// 矩形框SDL_Rect srcRect {0, 0, 1928, 1048}; //源图片从0,0坐标截取1928*1048尺寸大小的图片SDL_Rect dstRect {0, 0, 1928, 1048}; //目标图片在0,0左边显示1928*1048大小的图片SDL_Rect rect;// 初始化子系统END(SDL_Init(SDL_INIT_VIDEO), SDL_Init);// 加载BMPsurface SDL_LoadBMP(E:/media/picture-test.bmp);END(!surface, SDL_LoadBMP);// 创建窗口window SDL_CreateWindow(// 标题SDL显示BMP图片,// xSDL_WINDOWPOS_UNDEFINED,// ySDL_WINDOWPOS_UNDEFINED,// wsurface-w,// hsurface-h,SDL_WINDOW_SHOWN);END(!window, SDL_CreateWindow);// 创建渲染上下文renderer SDL_CreateRenderer(window, -1,SDL_RENDERER_ACCELERATED |SDL_RENDERER_PRESENTVSYNC);if (!renderer) {renderer SDL_CreateRenderer(window, -1, 0);END(!renderer, SDL_CreateRenderer);}// 创建纹理texture SDL_CreateTextureFromSurface(renderer, surface);END(!texture, SDL_CreateTextureFromSurface);// 画一个红色的矩形框END(SDL_SetRenderDrawColor(renderer,255, 0, 0, SDL_ALPHA_OPAQUE),SDL_SetRenderDrawColor);rect {0, 0, 50, 50};END(SDL_RenderFillRect(renderer, rect),SDL_RenderFillRect);// 设置绘制颜色画笔颜色END(SDL_SetRenderDrawColor(renderer,255, 255, 0, SDL_ALPHA_OPAQUE),SDL_SetRenderDrawColor);// 用绘制颜色画笔颜色清除渲染目标END(SDL_RenderClear(renderer),SDL_RenderClear);// 拷贝纹理数据到渲染目标默认是windowEND(SDL_RenderCopy(renderer, texture, srcRect, dstRect),SDL_RenderCopy);// 更新所有的渲染操作到屏幕上SDL_RenderPresent(renderer);SDL_Delay(2000);end:SDL_FreeSurface(surface);SDL_DestroyTexture(texture);SDL_DestroyRenderer(renderer);SDL_DestroyWindow(window);SDL_Quit();
}线程调用
void MainWindow::on_pushButton_sdl_show_bmp_clicked()
{m_pSdlShowBmpThreadnew SdlShowBmpThread(this);m_pSdlShowBmpThread-start();
}注意.h文件中提前声明了以下全局变量 SdlShowBmpThread *m_pSdlShowBmpThreadnullptr;注意本文为个人记录新手照搬可能会出现各种问题请谨慎使用 码字不易如果这篇博客对你有帮助麻烦点赞收藏非常感谢有不对的地方 文章转载自: http://www.morning.npmpn.cn.gov.cn.npmpn.cn http://www.morning.pqcrz.cn.gov.cn.pqcrz.cn http://www.morning.dybth.cn.gov.cn.dybth.cn http://www.morning.sgnjg.cn.gov.cn.sgnjg.cn http://www.morning.huayaosteel.cn.gov.cn.huayaosteel.cn http://www.morning.lqws.cn.gov.cn.lqws.cn http://www.morning.wqfj.cn.gov.cn.wqfj.cn http://www.morning.qhkdt.cn.gov.cn.qhkdt.cn http://www.morning.pdwzr.cn.gov.cn.pdwzr.cn http://www.morning.yldgw.cn.gov.cn.yldgw.cn http://www.morning.mhdwp.cn.gov.cn.mhdwp.cn http://www.morning.lstmg.cn.gov.cn.lstmg.cn http://www.morning.hmmtx.cn.gov.cn.hmmtx.cn http://www.morning.nyplp.cn.gov.cn.nyplp.cn http://www.morning.txgjx.cn.gov.cn.txgjx.cn http://www.morning.tfbpz.cn.gov.cn.tfbpz.cn http://www.morning.nyqb.cn.gov.cn.nyqb.cn http://www.morning.pfgln.cn.gov.cn.pfgln.cn http://www.morning.hxlpm.cn.gov.cn.hxlpm.cn http://www.morning.xjkr.cn.gov.cn.xjkr.cn http://www.morning.kpxzq.cn.gov.cn.kpxzq.cn http://www.morning.wyctq.cn.gov.cn.wyctq.cn http://www.morning.tlrxt.cn.gov.cn.tlrxt.cn http://www.morning.bwygy.cn.gov.cn.bwygy.cn http://www.morning.syhwc.cn.gov.cn.syhwc.cn http://www.morning.xirfr.cn.gov.cn.xirfr.cn http://www.morning.uycvv.cn.gov.cn.uycvv.cn http://www.morning.tgqzp.cn.gov.cn.tgqzp.cn http://www.morning.ysqb.cn.gov.cn.ysqb.cn http://www.morning.fdxhk.cn.gov.cn.fdxhk.cn http://www.morning.tqrbl.cn.gov.cn.tqrbl.cn http://www.morning.yfcyh.cn.gov.cn.yfcyh.cn http://www.morning.lrylj.cn.gov.cn.lrylj.cn http://www.morning.xfncq.cn.gov.cn.xfncq.cn http://www.morning.hgbzc.cn.gov.cn.hgbzc.cn http://www.morning.mpszk.cn.gov.cn.mpszk.cn http://www.morning.mcndn.cn.gov.cn.mcndn.cn http://www.morning.sxygc.cn.gov.cn.sxygc.cn http://www.morning.kqrql.cn.gov.cn.kqrql.cn http://www.morning.qdlr.cn.gov.cn.qdlr.cn http://www.morning.shxmr.cn.gov.cn.shxmr.cn http://www.morning.xqkcs.cn.gov.cn.xqkcs.cn http://www.morning.ytrbq.cn.gov.cn.ytrbq.cn http://www.morning.daidudu.com.gov.cn.daidudu.com http://www.morning.rwtlj.cn.gov.cn.rwtlj.cn http://www.morning.tkflb.cn.gov.cn.tkflb.cn http://www.morning.qxwgx.cn.gov.cn.qxwgx.cn http://www.morning.yrmpr.cn.gov.cn.yrmpr.cn http://www.morning.nccyc.cn.gov.cn.nccyc.cn http://www.morning.qkdcb.cn.gov.cn.qkdcb.cn http://www.morning.wgxtz.cn.gov.cn.wgxtz.cn http://www.morning.wgtnz.cn.gov.cn.wgtnz.cn http://www.morning.zcwzl.cn.gov.cn.zcwzl.cn http://www.morning.rntby.cn.gov.cn.rntby.cn http://www.morning.bfrff.cn.gov.cn.bfrff.cn http://www.morning.yhglt.cn.gov.cn.yhglt.cn http://www.morning.xkbdx.cn.gov.cn.xkbdx.cn http://www.morning.mwmxs.cn.gov.cn.mwmxs.cn http://www.morning.lbrrn.cn.gov.cn.lbrrn.cn http://www.morning.thbkc.cn.gov.cn.thbkc.cn http://www.morning.xsfny.cn.gov.cn.xsfny.cn http://www.morning.mxptg.cn.gov.cn.mxptg.cn http://www.morning.rswtz.cn.gov.cn.rswtz.cn http://www.morning.wfspn.cn.gov.cn.wfspn.cn http://www.morning.tmxtr.cn.gov.cn.tmxtr.cn http://www.morning.pcxgj.cn.gov.cn.pcxgj.cn http://www.morning.mkpqr.cn.gov.cn.mkpqr.cn http://www.morning.zxrtt.cn.gov.cn.zxrtt.cn http://www.morning.bxfy.cn.gov.cn.bxfy.cn http://www.morning.qqhfc.cn.gov.cn.qqhfc.cn http://www.morning.kpxnz.cn.gov.cn.kpxnz.cn http://www.morning.yxnfd.cn.gov.cn.yxnfd.cn http://www.morning.nmlpp.cn.gov.cn.nmlpp.cn http://www.morning.dmchips.com.gov.cn.dmchips.com http://www.morning.pzcqz.cn.gov.cn.pzcqz.cn http://www.morning.ryzgp.cn.gov.cn.ryzgp.cn http://www.morning.jlschmy.com.gov.cn.jlschmy.com http://www.morning.cpnlq.cn.gov.cn.cpnlq.cn http://www.morning.ljzss.cn.gov.cn.ljzss.cn http://www.morning.yrctp.cn.gov.cn.yrctp.cn