使用CxImage进行图形和格式转换(CBitmap to jpg or png or gif or bmp)
CxImage類庫介紹
CxImage類庫是一個幾乎可以管理所有的圖象文件的C++類庫。它可以快捷地存取、顯示、轉換各種圖像。
其他的圖形庫?有那么多優秀的圖形庫,如OpenIL,FreeImage,PaintLib等等,它們是功能強大,齊全,而且是經常更新的。然而,如果你要使用他們,你可能會遇到一些麻煩,,因為它們大部分是平臺無關的,用C語言寫成,有的還夾雜著基本的C++ wrapper和大量的編譯選項的聲明需要你去處理。現在,一個新的GDI+類庫來了,或許CxImage不是最有用的,但是至少你是有源代碼的。這個類庫不是MFC類庫,完全是一個windows類庫,因為一些特殊的構造和繪圖函數,但是基礎是平臺無關的。
一.在你的程序中使用CxImage(Using MFC in Shared DLL + Debug 模式)
1.下載CxImage類庫
地址:http://www.xdp.it/download.htm
??????????http://www.codeproject.com/bitmap/cximage.asp
下載Download full source files (full) - 2.10 Mb?
2.解壓壓縮包,并編譯Demo2/Console.dsw,這個過程可能比較慢,中間文件為60M?
3.編譯完成后搜索*.lib文件,一共搜索出10個文件,把它們復制到你的工程目錄中(任意)
它們分別為:CxImage.lib Jpeg.lib png.lib Tiff.lib jbig.lib zlib.lib j2k.lib cximagecrtd.lib(最后一個為靜態MFC庫時使用)
4.找到壓縮包中的CxImage文件夾,把它里面的所有.h頭文件,復制到你的工程目錄中(任意)
5.在StdAfx.h文件中,添加這些文件
6.這樣就可以在你的程序中使用CxImage類了
7.演示程序
其他說明
1.所支持的格式(in Doc)
formats?#define?required libraries?size [Kbyte]?BMP?
GIF?
ICO?
TGA?
PCX?
WBMP?
WMF CXIMAGE_SUPPORT_BMP?
CXIMAGE_SUPPORT_GIF?
CXIMAGE_SUPPORT_ICO?
CXIMAGE_SUPPORT_TGA?
CXIMAGE_SUPPORT_PCX?
CXIMAGE_SUPPORT_WBMP?
CXIMAGE_SUPPORT_WMF?
built in?
24 JPEG CXIMAGE_SUPPORT_JPG?
jpeg?
88 PNG CXIMAGE_SUPPORT_PNG?
png, zlib?
104 MNG CXIMAGE_SUPPORT_MNG?
mng, zlib, jpeg?
148 TIFF CXIMAGE_SUPPORT_TIF?
tiff, zlib, jpeg?
124 JBIG CXIMAGE_SUPPORT_JBG?
jbig?
28 PNM,PPM,PGM?
RAS CXIMAGE_SUPPORT_PNM?
CXIMAGE_SUPPORT_RAS?
jasper?
176 JPEG-2000 CXIMAGE_SUPPORT_JP2?
CXIMAGE_SUPPORT_JPC?
CXIMAGE_SUPPORT_PGX?
jasper?
176?
2.格式轉換示例
3.使用CxImage(In Doc),至今未弄懂....也沒按這個弄好過...不知道為什么
二.使用CxImage(Using MFC in a Static Library + Debug 模式)
1.解壓壓縮包,打開Demo2/Console.dsw,設置如下:
Project -> Setting -> Using MFC in a Static Library(注意是所有的項目都設置成這個)
2.確保c/c++ -> Code Generation -> Using run-time library 為 Mutithreaded
3.Debug模式下編譯,搜索*.lib文件,復制到工程目錄,包含進工程(當前工程也必須是Using MFC in a Static Library + Debug 模式),即可,包含方法同上
注意:生成的LIB文件,比上面要少一個....不知道為什么...少了consoled.lib,但并無大礙,不包含它即可
三.使用CxImage(Using MFC in a Static Library + Realese 模式)
1.解壓壓縮包,打開Demo2/Console.dsw,設置如下:
Project -> Setting -> Using MFC in a Static Library(注意是所有的項目都設置成這個)
2.確保c/c++ -> Code Generation -> Using run-time library 為 Mutithreaded
3.Realese模式下編譯,搜索*.lib文件,復制到工程目錄,包含進工程(當前工程也必須是Using MFC in a Static Library + Realese模式),即可,包含方法同上
注意:生成的LIB文件,同樣是少一個,不包含它即可
參考:
Open the CxImage workspace with all the libraries. Select Project->Properties. Select each project in the list and make sure they all have the same settings for the MFC library (Not Using MFC for a static library). Then select the C/C++ tab and select Code Generation in the combo box. In the Use Run-time Library combo box, make sure all of them are set to Single-Threaded (or multi threaded depending on your settings). Then remake all the libraries and try to recompile your project
Thanks Kelly. It works! Thanks again!:) It turns out that CxImage static lib projects, in my case, are not set uniformly the same; some uses MFC shared library while some uses MFC static library
總結
以上是生活随笔為你收集整理的使用CxImage进行图形和格式转换(CBitmap to jpg or png or gif or bmp)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Camera tuning岗位面试总结
- 下一篇: 任务栏没有计算机快捷方式,电脑程序在运行