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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

C++使用GDI+实现图片格式转换

發(fā)布時間:2025/4/5 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++使用GDI+实现图片格式转换 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

主要是我在設(shè)置壁紙時遇到的個小問題,因為設(shè)置壁紙只能是bmp格式的圖片,不可能我喜歡的壁紙就都是bmp格式的,就想怎么轉(zhuǎn)換一下圖片的格式,于是就在百度搜怎么弄,搜到了可行方法,卻沒有實現(xiàn)代碼,有些看起來很費勁(很煩做例子還要用MFC的,代碼看起來很費勁,直接C/C++多清爽簡潔啊),后來還是找到MSDN給出了官方的使用代碼加上自己的一些小改動實現(xiàn)了轉(zhuǎn)bmp格式的代碼,這里記錄一下,省的以后要用的時候再去搜。

實現(xiàn)代碼:

1 #include <iostream> 2 #include <Windows.h> 3 #include <gdiplus.h> 4 5 #pragma comment(lib,"Gdiplus.lib") 6 7 using namespace Gdiplus; 8 9 /* 10 通過字符串獲得對應(yīng)的CLSID 11 format:圖像格式,如:image/bmp 12 pClsid:存放對應(yīng)的CLSID 13 成功返回對應(yīng)的編碼器位置,失敗返回-1. 14 */ 15 int GetEncoderClsid(const WCHAR* format, CLSID* pClsid); 16 17 int main(void) 18 { 19 GdiplusStartupInput gdiplusStartupInput; 20 ULONG_PTR gdiplusToken; 21 // GDI+的任何操作之前應(yīng)該先初始化 22 GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL); 23 24 CLSID encoderClsid; 25 Status stat; 26 // 載入圖片 27 Image* image = new Image(L"C:\\Users\\Administrator\\Desktop\\2.jpg"); 28 // 獲取要轉(zhuǎn)換格式的CLSID 29 GetEncoderClsid(L"image/bmp", &encoderClsid); 30 // 根據(jù)CLSID保存為對應(yīng)格式的圖片 31 stat = image->Save(L"C:\\Users\\Administrator\\Desktop\\Bird.bmp", &encoderClsid, NULL); 32 33 if (stat == Ok) 34 printf("Bird.png was saved successfully\n"); 35 else 36 printf("Failure: stat = %d\n", stat); 37 38 delete image; 39 // 關(guān)閉GDI+ 40 GdiplusShutdown(gdiplusToken); 41 // 轉(zhuǎn)換后就可以設(shè)置壁紙啦 42 SystemParametersInfo(20, 0, "C:\\Users\\Administrator\\Desktop\\Bird.bmp", 1); 43 // 設(shè)置完成后可以刪除它,加個延時,不然可能還沒設(shè)置上就被刪除了 44 Sleep(100); 45 DeleteFile("C:\\Users\\Administrator\\Desktop\\Bird.bmp"); 46 return 0; 47 48 } 49 50 int GetEncoderClsid(const WCHAR* format, CLSID* pClsid) 51 { 52 UINT num = 0; // 圖像編碼器數(shù)量 53 UINT size = 0; // 圖像編碼器數(shù)組大小 54 55 ImageCodecInfo* pImageCodecInfo = NULL; 56 57 GetImageEncodersSize(&num, &size); // 獲取編碼器數(shù)量 58 if (size == 0) 59 return -1; 60 61 pImageCodecInfo = (ImageCodecInfo*)(malloc(size)); 62 if (pImageCodecInfo == NULL) 63 return -1; 64 65 GetImageEncoders(num, size, pImageCodecInfo); // 獲取本機支持的編碼器 66 67 for (UINT j = 0; j < num; ++j) 68 { 69 if (wcscmp(pImageCodecInfo[j].MimeType, format) == 0) // 找到該格式就將對應(yīng)的CLSID給*pClsid 70 { 71 *pClsid = pImageCodecInfo[j].Clsid; 72 free(pImageCodecInfo); 73 return j; 74 } 75 } 76 77 free(pImageCodecInfo); 78 return -1; 79 }

?

轉(zhuǎn)載于:https://www.cnblogs.com/biaoge140/p/9170926.html

《新程序員》:云原生和全面數(shù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀

總結(jié)

以上是生活随笔為你收集整理的C++使用GDI+实现图片格式转换的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: jizz性欧美2 视频在线日韩 | 亚洲国产成人在线 | 国内毛片毛片毛片毛片毛片 | 日韩美女性生活 | 日韩欧美高清dvd碟片 | 日本泡妞视频 | 亚洲aa在线 | 国产视频h | 影音先锋丝袜美腿 | 95精品视频 | 特黄视频免费看 | 中国一级片在线观看 | 狗爬女子的视频 | 成人激情电影在线观看 | 另类欧美尿交 | 亚洲国产精品久久 | 丝袜 亚洲 另类 国产 制服 | 8x国产一区二区三区精品推荐 | 免费看一级黄色大全 | 麻豆性生活 | 成人导航网站 | 亚洲小视频在线播放 | 黄色一机片 | 国语久久| 日本大乳美女 | 婷婷色在线视频 | 电影91久久久 | 色一情一乱一伦一区二区三区 | 国产高清第一页 | 国产精品九九 | 精品久久国产视频 | 女人18岁毛片 | 美女性生活视频 | 中文字幕在线观看第一页 | 国产日本欧美一区二区 | 午夜久久福利 | 青草成人免费视频 | 91社区视频 | 国产首页 | 91性| 亚洲国产网站 | 成人a毛片久久免费播放 | sm在线看| 中文字幕伦理 | 日韩欧美色 | 黄频在线免费观看 | 欧美xx视频 | 性爱动漫 | 95国产精品| 被警察猛c猛男男男 | 一个色的综合 | 国产一级片在线播放 | 久久婷婷一区二区 | 在线观看成人免费视频 | 99久久精品国产色欲 | 淫语对白 | 国产精品一区在线观看 | 自拍偷拍亚洲欧美 | 香蕉黄色网 | 欧美人喂奶吃大乳 | 成人网在线视频 | 亚洲精品精品 | av在线电影观看 | 青青草精品在线视频 | 欧美老熟妇喷水 | 亚洲免费大片 | 久久天天干 | 黄色av影院| 午夜看黄神器 | 成人av手机在线 | 99re视频这里只有精品 | 欧美午夜一区二区 | 大肉大捧一进一出好爽视频动漫 | 天天射天天操天天干 | 少妇高潮淫片免费观看 | 337p日本欧洲亚洲大胆精筑 | 日韩激情视频网站 | 鸥美毛片 | 久久这里精品 | 婷婷日 | 青青草国产一区二区三区 | 最新av | 潘金莲一级淫片免费放动漫 | 国产婷婷久久 | 国产精品久久免费 | 91蝌蚪少妇 | 日本不卡不卡 | 欧日韩不卡在线视频 | 亚洲国产精品成人综合在线 | 亚洲欧美成人一区 | 成人夜视频 | 黄色激情四射 | 日韩精品电影在线观看 | 精品综合久久久久 | 环太平洋3:泰坦崛起 | 国产十区| 国产熟女一区二区三区四区 | 日日射夜夜 | 中国女人真人一级毛片 |