StretchBlt模式

StretchBlt模式-簡介

 

     使用StretchBlt會碰到一些與點陣圖大小縮放相關的一些根本問題。在擴展一個點陣圖時,StretchBlt必須複製圖素行或列。如果放大倍數不是原圖的整數倍,那麼此操作會造成產生的圖像有些失真。

StretchBlt模式-說明

      如果目的矩形來源矩形小,那麼StretchBlt在縮小圖像時就必須把兩行(或列)或者多行(或列)的圖素合併到一行(或列)。完成此操作有四種方法,它根據裝置內容伸展模式屬性來選擇其中一種方法。您可使用SetStretchBltMode函式來修改這個屬性。

SetStretchBltMode (hdc, iMode) ;
iMode可取下列值:

BLACKONWHITE或者STRETCH_ANDSCANS(內定) 如果兩個或多個圖素得合併成一個圖素,那麼StretchBlt會對圖素執行一個邏輯AND運算。這樣的結果是隻有全部的原始圖素是白色時該圖素才爲白色,其實際意義是黑色圖素控制了白色圖素。這適用於白背景中主要是黑色的單色點陣圖。
 
WHITEONBLACK或STRETCH_ORSCANS 如果兩個或多個圖素得合併成一個圖素,那麼StretchBlt執行邏輯OR運算。這樣的結果是隻有全部的原始圖素都是黑色時纔是黑色,也就是說由白色圖素決定顏色。這適用於黑色背景中主要是白色的單色點陣圖。
 
COLORONCOLOR或STRETCH_DELETESCANS StretchBlt簡單地消除圖素行或列,而沒有任何邏輯組合。這是通常是處理彩色點陣圖的最佳方法。
 
HALFTONE或STRETCH_HALFTONE Windows根據組合起來的來源顏色來計算目的的平均顏色。這將與半調調色盤聯合使用,第十六章將展示這一程序。
 
Windows還包括用於取得目前伸展模式的GetStretchBltMode函式。

/*******************************************************************************************

轉自http://www.hudong.com/wiki/StretchBlt%E6%A8%A1%E5%BC%8F

/*******************************************************************************************/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章