• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            小步慢跑

             

            使用GDIPlus 保存HBITMAP到磁盤文件,轉(zhuǎn)換圖片格式

            先定義一個(gè)方法獲取指定的圖片格式的編碼器。摘自msdn

               1: /* format 取值為:
               2: image/bmp 
               3: image/jpeg 
               4: image/gif 
               5: image/tiff 
               6: image/png 
               7: */
               8: int GetEncoderClsid( const WCHAR* format, CLSID* pClsid )
               9: {
              10:     UINT  num = 0;          // number of image encoders
              11:     UINT  size = 0;         // size of the image encoder array in bytes
              12:  
              13:     ImageCodecInfo* pImageCodecInfo = NULL;
              14:  
              15:     GetImageEncodersSize(&num, &size);
              16:     if(size == 0)
              17:         return -1;  // Failure
              18:  
              19:     pImageCodecInfo = (ImageCodecInfo*)(malloc(size));
              20:     if(pImageCodecInfo == NULL)
              21:         return -1;  // Failure
              22:  
              23:     GetImageEncoders(num, size, pImageCodecInfo);
              24:  
              25:     for(UINT j = 0; j < num; ++j)
              26:     {
              27:         if( wcscmp(pImageCodecInfo[j].MimeType, format) == 0 )
              28:         {
              29:             *pClsid = pImageCodecInfo[j].Clsid;
              30:             free(pImageCodecInfo);
              31:             return j;  // Success
              32:         }    
              33:     }
              34:  
              35:     free(pImageCodecInfo);
              36:     return -1;  // Failure
              37:  
              38: }

            下面的代碼可以把一個(gè)GDI中使用的HBITMAP句柄保存到磁盤

               1: CLSID bmpClsid;
               2: GetEncoderClsid(L"image/bmp", &bmpClsid);
               3:  
               4: //保存到磁盤上的bmp文件
               5: Gdiplus::Bitmap bitmap(hBitmap,NULL);
               6: bitmap.Save(L"1.bmp", &bmpClsid, NULL);
               7:  
               8: // 轉(zhuǎn)換為png,再保存到磁盤上
               9: CLSID pngid;
              10: GetEncoderClsid(L"image/png", &pngid);
              11: bitmap.Save(L"1.png",&pngid,NULL);

            下面的代碼從磁盤上讀取一個(gè)jpg文件,轉(zhuǎn)換為bmp再保存到磁盤上

               1: Gdiplus::Image * pImage = Gdiplus::Image::FromFile(L"E:/Dropbox/MyDocument/美圖圖庫(kù)/示例圖片_03.jpg");
               2: pImage->Save(L"2.bmp",&bmpClsid,NULL);

            posted on 2012-08-30 13:42 zaccheo 閱讀(5830) 評(píng)論(1)  編輯 收藏 引用 所屬分類: gdi/gdi+

            評(píng)論

            # re: 使用GDIPlus 保存HBITMAP到磁盤文件,轉(zhuǎn)換圖片格式 2015-03-28 15:44 王小亮

            寫的很好,學(xué)習(xí)了。  回復(fù)  更多評(píng)論   

            導(dǎo)航

            統(tǒng)計(jì)

            常用鏈接

            留言簿

            隨筆分類(23)

            隨筆檔案(26)

            文章分類(1)

            文章檔案(1)

            csdn

            搜索

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            精品国产91久久久久久久a| 青青草原精品99久久精品66| 热re99久久6国产精品免费| 日本欧美国产精品第一页久久| 色综合久久久久网| 久久婷婷国产麻豆91天堂| 久久久久亚洲av无码专区导航| 天天爽天天狠久久久综合麻豆| 亚洲狠狠婷婷综合久久久久| 影音先锋女人AV鲁色资源网久久| 久久AV高潮AV无码AV| 国产精品久久婷婷六月丁香| 久久精品国产男包| 无码伊人66久久大杳蕉网站谷歌 | 东方aⅴ免费观看久久av| 国产精品99久久久精品无码 | 欧美日韩精品久久久免费观看| 久久亚洲精品无码VA大香大香| 2021久久精品免费观看| 色综合久久中文字幕无码| 国产成人精品久久二区二区| 久久精品成人免费国产片小草| 久久久久免费视频| 色婷婷久久综合中文久久蜜桃av| 久久久久人妻一区精品性色av| 国产激情久久久久影院小草 | 亚洲国产成人久久精品影视| 国产精品热久久无码av| 中文字幕人妻色偷偷久久| 91精品国产91久久久久福利| 久久中文字幕无码专区| 人妻丰满AV无码久久不卡| 久久99精品国产麻豆蜜芽| 国产偷久久久精品专区| 久久99精品国产一区二区三区| 热久久国产欧美一区二区精品| 精品久久久久久无码中文字幕一区| 久久精品国产亚洲av瑜伽| 久久不见久久见免费视频7| 久久无码一区二区三区少妇 | 99热精品久久只有精品|