亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? makecolordib.cpp

?? VC++圖像處理程序設(shè)計(jì)課本和代碼.
?? CPP
?? 第 1 頁 / 共 3 頁
字號:
// MakeColorDib.cpp: implementation of the MakeColorDib class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "DSplit.h"
#include "MakeColorDib.h"
#include "MainFrm.h"
#include "math.h"
#define BOUND(x,a,b) (((x) < (a)) ? (a) : (((x) > (b)) ? (b) : (x)))
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

MakeColorDib::MakeColorDib()
{

}

MakeColorDib::~MakeColorDib()
{

}

/***************************************************************/
/*函數(shù)名稱:MakegGray()                                        */
/*函數(shù)類型:void                                               */
/*功能:真彩色轉(zhuǎn)化成256色灰度圖像。                            */
/***************************************************************/
void MakeColorDib::MakegGray()    //灰度變化
{
	BYTE *p_data;     //原圖數(shù)據(jù)區(qū)指針
	int wide,height,DibWidth;    //原圖長、寬、字節(jié)寬
	p_data=this->GetData ();   //取得原圖的數(shù)據(jù)區(qū)指針
    wide=this->GetWidth ();   //取得原圖的數(shù)據(jù)區(qū)寬度
    height=this->GetHeight ();   //取得原圖的數(shù)據(jù)區(qū)高度
	DibWidth=this->GetDibWidthBytes();   //取得原圖的每行字節(jié)數(shù)
	for(int j=0;j<height;j++)	// 每行
		for(int i=0;i<DibWidth;i+=3)	// 每列
		{
			BYTE* pbyBlue = p_data++;   //得到藍(lán)色值
			BYTE* pbyGreen = p_data++;  //得到綠色值
			BYTE* pbyRed = p_data++;    //得到紅色值
			BYTE r = *pbyRed;
			BYTE g = *pbyGreen;
			BYTE b = *pbyBlue;
			//取到原r,g,b中的最大值作為像素三分量值的新值
			int gray=0;
			if(r>g)
				gray=r;
			else 
				gray=g;
			if(gray<b)
				gray=b;			
       		*pbyBlue = gray;     //將取到的最大值賦給像素的藍(lán)分量
			*pbyGreen = gray;    //將取到的最大值賦給像素的綠分量
			*pbyRed = gray;	     //將取到的最大值賦給像素的紅分量
		}
}

/***************************************************************/
/*函數(shù)名稱:LightAlter(int m_Light)                            */
/*函數(shù)類型:void                                               */
/*參數(shù):int m_Light,用戶給定的閾值                            */
/*功能:對圖像使用閾值法進(jìn)行亮度調(diào)整。                         */
/***************************************************************/
void MakeColorDib::LightAlter(int m_Light)    //亮度調(diào)整
{
	BYTE *p_data;     //原圖數(shù)據(jù)區(qū)指針
	int wide,height,DibWidth;    //原圖長、寬、字節(jié)寬
	p_data=this->GetData ();   //取得原圖的數(shù)據(jù)區(qū)指針
    wide=this->GetWidth ();  //取得原圖的數(shù)據(jù)區(qū)寬度
    height=this->GetHeight ();    //取得原圖的數(shù)據(jù)區(qū)高度
	DibWidth=this->GetDibWidthBytes();   //取得原圖的每行字節(jié)數(shù)
	for(int j=0;j<height;j++)	// 每行
	for(int i=0;i<DibWidth;i++)	// 每列
	{   
		int a=0;
		a=int(*p_data*m_Light/100);   //調(diào)整當(dāng)前點(diǎn)的亮度
		*p_data=a;
		//判斷范圍,取得合理的值
		if(a<0) 
			*p_data=0;  
	    if(a>255)
			*p_data=255;
        p_data++;   //指向下一指針
	}
}

/***************************************************************/
/*函數(shù)名稱:LightReverse()                                     */
/*函數(shù)類型:void                                               */
/*功能:圖像的亮度取反。                                       */
/***************************************************************/
void MakeColorDib::LightReverse()    //亮度取反
{
	BYTE *p_data;     //原圖數(shù)據(jù)區(qū)指針
	int wide,height,DibWidth;    //原圖長、寬、字節(jié)寬
	p_data=this->GetData ();   //取得原圖的數(shù)據(jù)區(qū)指針
    wide=this->GetWidth ();  //取得原圖的數(shù)據(jù)區(qū)寬度
    height=this->GetHeight ();   //取得原圖的數(shù)據(jù)區(qū)高度
	DibWidth=this->GetDibWidthBytes();   //取得原圖的每行字節(jié)數(shù)
	for(int j=0;j<height;j++)	// 每行
		for(int i=0;i<DibWidth;i++)	// 每列
		{
			int a=*p_data;   //取得當(dāng)前點(diǎn)的值
			*p_data=255-a;    //取反
			p_data++;  //指向下一指針  
		}
}

/***************************************************************/
/*函數(shù)名稱:ContrastAlter(int m_Increment)                     */
/*函數(shù)類型:void                                               */
/*參數(shù):int m_Increment,用戶給定的閾值                        */
/*功能:對圖像使用閾值法調(diào)整對比度處理。                       */
/***************************************************************/
void MakeColorDib::ContrastAlter(int m_Increment)   ///對比度處理
{
	int nHigh = 255 - m_Increment;
	//對于極端情況加以處理
	if(nHigh < m_Increment)
	{
		nHigh = 127;
		m_Increment = 120;
	}
	if(m_Increment < -127)
		m_Increment = -120;
	//擴(kuò)展或壓縮區(qū)間的長度
	int nStretch = 255;
	if(m_Increment >= 0)
		nStretch = 255 - 2 * m_Increment;
	else
		nStretch = 255 + 2 * m_Increment;
	BYTE *p_data;     //原圖數(shù)據(jù)區(qū)指針
	int wide,height,DibWidth;    //原圖長、寬、字節(jié)寬
	p_data=this->GetData ();   //取得原圖的數(shù)據(jù)區(qū)指針
    wide=this->GetWidth ();  //取得原圖的數(shù)據(jù)區(qū)寬度
    height=this->GetHeight ();   //取得原圖的數(shù)據(jù)區(qū)高度
	DibWidth=this->GetDibWidthBytes();   //取得原圖的每行字節(jié)數(shù)
	if(m_Increment >= 0)   // m_Increment>=0時(shí)
	{
		for(int j=0;j<height;j++)	// 每行
			for(int i=0;i<DibWidth-3;i+=3)	// 每列
			{   
				//取得當(dāng)前點(diǎn)(藍(lán)色)的值,調(diào)整
				BYTE* pbyBlue = p_data++;    
				if(*pbyBlue<=m_Increment)
					*pbyBlue=0;
				else if(*pbyBlue>nHigh)
					*pbyBlue=255;
				else
					*pbyBlue=(BYTE)((((int)*pbyBlue - m_Increment) * 255) / nStretch );
				//取得當(dāng)前點(diǎn)(綠色)的值,調(diào)整
				BYTE* pbyGreen = p_data++;
				if(*pbyGreen<=m_Increment)
					*pbyGreen=0;
				else if(*pbyGreen>nHigh)
					*pbyGreen=255;
				else
					*pbyGreen=(BYTE)((((int)*pbyGreen - m_Increment) * 255) / nStretch );
				//取得當(dāng)前點(diǎn)(紅色)的值,調(diào)整
				BYTE* pbyRed = p_data++;
				if(*pbyRed<=m_Increment)
					*pbyRed=0;
				else if(*pbyRed>nHigh)
					*pbyRed=255;
				else
					*pbyRed=(BYTE)((((int)*pbyRed - m_Increment) * 255) / nStretch );
			}
			
	}
	else  // m_Increment < 0 時(shí)
	{
		for(int j=0;j<height;j++)
			for(int i=0;i<DibWidth-3;i+=3)
			{	//取得當(dāng)前點(diǎn)(藍(lán)色)的值,調(diào)整
				BYTE* pbyBlue = p_data++;
				*pbyBlue = (BYTE)((((int)(*pbyBlue) * nStretch) / 255) - m_Increment);
				//取得當(dāng)前點(diǎn)(紅色)的值,調(diào)整
				BYTE* pbyGreen = p_data++;
				*pbyGreen = (BYTE)((((int)(*pbyGreen) * nStretch) / 255) - m_Increment);
				//取得當(dāng)前點(diǎn)(紅色)的值,調(diào)整
				BYTE* pbyRed = p_data++;
				*pbyRed = (BYTE)((((int)(*pbyRed) * nStretch) / 255) - m_Increment);				
			}
	}
}

/***************************************************************/
/*函數(shù)名稱:Exposal()                                          */
/*函數(shù)類型:void                                               */
/*功能:圖像曝光處理。                                         */
/***************************************************************/
void MakeColorDib::Exposal() //曝光處理
{
	BYTE *p_data;     //原圖數(shù)據(jù)區(qū)指針
	int wide,height,DibWidth;    //原圖長、寬、字節(jié)寬
	p_data=this->GetData ();   //取得原圖的數(shù)據(jù)區(qū)指針
    wide=this->GetWidth ();  //取得原圖的數(shù)據(jù)區(qū)寬度
    height=this->GetHeight ();   //取得原圖的數(shù)據(jù)區(qū)高度
	DibWidth=this->GetDibWidthBytes();   //取得原圖的每行字節(jié)數(shù)
	for(int j=0;j<height;j++)	// 每行
		for(int i=0;i<DibWidth;i++)	// 每列
		{
			BYTE* pbydata = p_data++;  //取得當(dāng)前點(diǎn)的值
			BYTE a=*pbydata;   //傳給臨時(shí)變量
			*pbydata=(a>128)?a:(255-a);   //調(diào)整
		}
		
}

/***************************************************************/
/*函數(shù)名稱:PaintColor(int m_Red,int m_Green,int m_Blue)       */
/*函數(shù)類型:void                                               */
/*參數(shù):int m_Red、m_Green、m_Blue,用戶給定的紅綠藍(lán)值         */
/*功能:對圖像使用閾值法進(jìn)行著色處理。                         */
/***************************************************************/
void MakeColorDib::PaintColor(int m_Red,int m_Green,int m_Blue) //著色處理
{
	BYTE *p_data;     //原圖數(shù)據(jù)區(qū)指針
	int wide,height,DibWidth;    //原圖長、寬、字節(jié)寬
	p_data=this->GetData ();   //取得原圖的數(shù)據(jù)區(qū)指針
    wide=this->GetWidth ();  //取得原圖的數(shù)據(jù)區(qū)寬度
    height=this->GetHeight ();   //取得原圖的數(shù)據(jù)區(qū)高度
	DibWidth=this->GetDibWidthBytes();   //取得原圖的每行字節(jié)數(shù)
	for(int j=0;j<height;j++)	// 每行
		for(int i=0;i<DibWidth;i+=3)	// 每列
		{			
			BYTE* pbyBlue = p_data++;	//取得當(dāng)前點(diǎn)(藍(lán)色)的值					
			BYTE* pbyGreen = p_data++;  //取得當(dāng)前點(diǎn)(綠色)的值
			BYTE* pbyRed = p_data++;    //取得當(dāng)前點(diǎn)(紅色)的值
			BYTE r = *pbyRed;
			BYTE g = *pbyGreen;
			BYTE b = *pbyBlue;
    		BYTE gray=(BYTE)(((WORD)r * 59 + (WORD)g * 30 + (WORD)b * 11) / 100);
			*pbyBlue = (BYTE)((m_Blue * gray) / 255);  
			*pbyGreen = (BYTE)((m_Green * gray) / 255);
			*pbyRed = (BYTE)((m_Red * gray) / 255);
		}
}

/***************************************************************/
/*函數(shù)名稱:NeonLight()                                        */
/*函數(shù)類型:void                                               */
/*功能:使圖像產(chǎn)生霓虹處理效果。                               */
/***************************************************************/
void MakeColorDib::NeonLight()   //霓虹處理
{

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美精品xxxxbbbb| 久久综合久久综合久久综合| 精品一区二区三区影院在线午夜| 日本一区二区电影| 6080yy午夜一二三区久久| 成人午夜又粗又硬又大| 日本vs亚洲vs韩国一区三区二区 | 蜜臀av性久久久久蜜臀aⅴ| 国产午夜精品美女毛片视频| 欧美日韩一区在线| 99国产麻豆精品| 国产一区二区福利视频| 午夜精品福利视频网站| 亚洲精品一二三| 日本一区免费视频| 精品福利一二区| 欧美一区二区在线视频| 欧美性xxxxx极品少妇| 99久久免费视频.com| 国产一区二区三区| 美女视频一区在线观看| 亚洲国产日韩综合久久精品| 亚洲欧美一区二区三区极速播放| 国产三级欧美三级日产三级99| 欧美色网一区二区| 在线这里只有精品| 色综合久久天天综合网| 成人蜜臀av电影| 欧美精品一区二区三区久久久| 欧美一a一片一级一片| 97精品久久久午夜一区二区三区| 粉嫩av一区二区三区在线播放| 精品亚洲免费视频| 日本伊人午夜精品| 天涯成人国产亚洲精品一区av| 亚洲国产精品精华液网站| 一区二区三区在线免费| 亚洲精品videosex极品| 亚洲精品午夜久久久| 亚洲视频电影在线| 亚洲欧美日韩电影| 一个色综合网站| 亚洲一级电影视频| 午夜电影一区二区三区| 视频在线观看一区二区三区| 午夜不卡av在线| 首页国产欧美日韩丝袜| 日本欧美一区二区| 蜜桃精品视频在线观看| 久久99精品久久久久久国产越南 | 精品久久久久久久久久久久久久久 | 一本色道久久综合亚洲精品按摩| av中文字幕不卡| 一本色道a无线码一区v| 亚洲欧美另类久久久精品2019 | 美腿丝袜亚洲色图| 精一区二区三区| 国产在线视频一区二区三区| 国产精品99久久久久久宅男| 成人免费av资源| 在线精品视频小说1| 欧美片网站yy| 26uuuu精品一区二区| 国产精品视频线看| 亚洲一区免费在线观看| 人禽交欧美网站| 国产成人av影院| 色老汉一区二区三区| 555夜色666亚洲国产免| 精品国产一区二区国模嫣然| 国产精品国产三级国产aⅴ中文| 玉米视频成人免费看| 蜜桃一区二区三区四区| 成人丝袜视频网| 欧美综合一区二区| 日韩午夜激情av| 成人欧美一区二区三区白人| 日韩精品国产欧美| 26uuu成人网一区二区三区| 国产日产欧美一区二区视频| 亚洲精品久久久蜜桃| 免费在线一区观看| 成人一区在线观看| 欧亚一区二区三区| 337p粉嫩大胆噜噜噜噜噜91av| 中文字幕在线不卡| 丝袜诱惑制服诱惑色一区在线观看| 极品美女销魂一区二区三区| 97久久精品人人做人人爽| 日韩欧美亚洲国产精品字幕久久久| 国产精品你懂的在线欣赏| 亚洲成av人片在www色猫咪| 国产电影一区二区三区| 欧美美女黄视频| 亚洲欧洲在线观看av| 麻豆视频观看网址久久| 91在线国内视频| 久久伊99综合婷婷久久伊| 亚洲电影一级黄| 成人夜色视频网站在线观看| 欧美区一区二区三区| ●精品国产综合乱码久久久久| 精品一区二区三区在线视频| 欧美在线三级电影| 国产日韩精品一区二区浪潮av| 日韩福利电影在线| 91福利小视频| 亚洲欧洲成人自拍| 国产原创一区二区三区| 欧美日韩高清影院| www.亚洲色图.com| 精品对白一区国产伦| 天堂在线一区二区| 在线观看国产日韩| 国产精品久久久久久一区二区三区 | 成人精品一区二区三区中文字幕| 日韩一级视频免费观看在线| 一区二区三区精品视频| 成人国产精品免费观看| 久久久久国产精品厨房| 久久99精品一区二区三区三区| 在线电影一区二区三区| 亚洲国产中文字幕| 色中色一区二区| 亚洲免费看黄网站| 99久久精品国产毛片| 日本一区二区三区dvd视频在线| 激情综合网最新| 欧美成人福利视频| 久久精品国产免费| 欧美电影免费观看高清完整版在线观看 | 欧美精品一区二区高清在线观看| 免费欧美在线视频| 91精品国产91热久久久做人人| 午夜亚洲国产au精品一区二区| 欧美性猛交xxxx黑人交| 亚洲国产精品久久久久秋霞影院 | 成人禁用看黄a在线| 国产亚洲精品福利| 国产不卡在线视频| 欧美经典一区二区| 成人午夜免费视频| 中文字幕一区在线观看视频| 91网站在线播放| 亚洲最色的网站| 欧美日韩精品免费观看视频 | 午夜国产不卡在线观看视频| 欧美伦理电影网| 美女视频第一区二区三区免费观看网站| 欧美乱妇20p| 久久99久久久久| 国产日产精品1区| 97精品国产露脸对白| 亚洲国产日产av| 欧美一级高清片| 国产成人在线视频网站| 18成人在线视频| 精品视频1区2区3区| 免费在线观看一区| 国产日韩精品一区二区三区在线| 波多野结衣精品在线| 一区二区激情视频| 日韩写真欧美这视频| 国产乱码精品一品二品| 亚洲视频免费在线| 69堂成人精品免费视频| 国产成人av电影在线观看| 亚洲激情欧美激情| 91精品国产综合久久精品app| 国产曰批免费观看久久久| 亚洲视频电影在线| 日韩午夜在线影院| 成人av免费在线| 日韩在线卡一卡二| 久久精品免费在线观看| 一本色道亚洲精品aⅴ| 另类小说综合欧美亚洲| 国产精品国产三级国产| 欧美久久久久久蜜桃| 国产成人日日夜夜| 亚洲国产色一区| 国产欧美一区二区三区沐欲| 在线免费观看成人短视频| 国产在线播放一区| 亚洲国产日日夜夜| 欧美激情在线一区二区| 5566中文字幕一区二区电影| 成人精品一区二区三区四区 | 欧美一卡二卡在线| 成人av资源下载| 日本三级韩国三级欧美三级| 国产精品美女久久久久久久网站| 欧美日韩免费观看一区二区三区| 国产二区国产一区在线观看| 日韩专区一卡二卡| 亚洲日本va午夜在线影院| 精品成人一区二区| 在线精品国精品国产尤物884a| 国产成人免费av在线| 日本aⅴ精品一区二区三区|