標(biāo) 題: 一些關(guān)于GDI+的文字——圖像、位圖和metafile
發(fā)信站: 浙江大學(xué)海納百川站 (Tue Oct 26 11:54:51 2004), 轉(zhuǎn)信
Image 類是抽象基類,它提供了處理光柵圖像(位圖)和矢量圖像(圖元文件)的方法
。Bitmap 類和 Metafile 類都從 Image 類繼承。Bitmap 類提供了用于加載、保存和處
理光柵圖像的其他方法,因而擴展了 Image 類的功能。Metafile 類提供了用于記錄和
檢查矢量圖像的其他方法,因而擴展了 Image 類的功能。
Bitmap類和文件中的位圖有關(guān),GDI+支持的圖像文件格式有BMP,GIF,JPEG,EXIF,PN
G,TIFF等,大大加強了GDI原有狂爆的打開圖像功能……
GDI+ 提供 Metafile 類,以便您能夠記錄和顯示圖元文件。圖元文件,也稱為矢量圖像
,是一種存儲為一系列繪圖命令和設(shè)置的圖像。Metafile 對象記錄的命令和設(shè)置可以存
儲在內(nèi)存中或保存到文件或流。
GDI+ 能夠顯示用以下格式存儲的圖元文件:
Windows 圖元文件 (WMF)
增強性圖元文件 (EMF)
EMF+
GDI+ 能夠用 EMF 和 EMF+ 格式記錄圖元文件,但不能使用 WMF 格式。
EMF+ 是 EMF 的擴展,可存儲 GDI+ 記錄。EMF+ 格式有兩種變體:“EMF+ 唯一”和“
EMF+ 雙重”。“EMF+ 唯一”圖元文件只包含 GDI+ 記錄。這樣的圖元文件可由 GDI+
顯示,但不可由 GDI 顯示。“EMF+ 雙重”圖元文件包含 GDI+ 和 GDI 記錄。“EMF+
雙重”圖元文件的每個 GDI+ 記錄與一個備用 GDI 記錄成對出現(xiàn)。這樣的圖元文件可由
GDI+ 或 GDI 顯示。
您可以使用 Bitmap 類來加載和顯示光柵圖像,還可以利用 Metafile 類來加載和顯示
矢量圖像。Bitmap 和 Metafile 類從 Image 類中繼承。要顯示矢量圖像,需要有 Gra
phics 對象和 Metafile 對象。要顯示光柵圖像,需要有 Graphics 對象和 Bitmap 對
象。Graphics 對象提供了 DrawImage 方法,該方法接收 Metafile 或 Bitmap 對象作
為參數(shù)。
下面的示例從文件 Climber.jpg 構(gòu)造 Bitmap 對象并顯示位圖。圖像左上角的目標(biāo)點
(10,10) 在第二個和第三個參數(shù)中指定。
Bitmap* myBitmap = new Bitmap(L"Climber.jpg");
myGraphics.DrawImage(myBitmap, 10, 10);
Bitmap 類提供了 Clone 方法,可用于制作現(xiàn)有 Bitmap 對象的副本。Clone 方法帶有
源矩形參數(shù),可用于指定要復(fù)制的原始位圖的部分。
優(yōu)越的圖像裁剪和圖像縮放
您可以使用 Graphics 類的 DrawImage 方法來繪制并定位矢量圖像和光柵圖像。DrawI
mage 是一種重載方法,因此您有數(shù)種方式為它提供參數(shù)。DrawImage 方法的一種變體接
收 Bitmap 對象和 Rectangle 對象。該矩形指定了繪圖操作的目標(biāo),即它指定了將要在
其內(nèi)繪圖的矩形。如果目標(biāo)矩形的大小與原始圖像的大小不同,原始圖像將進(jìn)行縮放,
以適應(yīng)目標(biāo)矩形。
另外還提供了強大的圖像縮放模式,使高精度縮放圖像成為現(xiàn)成工具,而不需要在圖像
版上詢問縮放圖像需要怎樣怎樣了。大家看看下面這個激動人心的函數(shù)定義吧:
Status Graphics::SetInterpolationMode(
InterpolationMode interpolationMode
);
其中InterpolationMode是這樣的一個枚舉:
enum InterpolationMode{
InterpolationModeInvalid = QualityModeInvalid,
InterpolationModeDefault = QualityModeDefault,
InterpolationModeLowQuality = QualityModeLow,
InterpolationModeHighQuality = QualityModeHigh,
InterpolationModeBilinear,
InterpolationModeBicubic,
InterpolationModeNearestNeighbor,
InterpolationModeHighQualityBilinear,
InterpolationModeHighQualityBicubic
};
呵呵,從這一點上看,GDI+已經(jīng)很仁至義盡了吧……
--
■■■■■■■■■■■■■■■■■■■■■■■■
這個世界只有10種人,懂二進(jìn)制的和不懂二進(jìn)制的
■■■■■■■■■■■■■■■■■■■■■■■■
jackyang@cs.zju since 2001
※ 來源:·浙江大學(xué)海納百川站 bbs.zju.edu.cn·[FROM: jackyang]
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請
點擊舉報。