📄 imageprocess.cpp
字号:
// ImageProcess.cpp: implementation of the CImageProcess class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "ImageProcess.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
IMPLEMENT_DYNAMIC(CImageProcess,CObject)
CImageProcess::CImageProcess()
{
m_dwOperation=0L;
m_dwColorModel=IMAGE_COLOR_RGBA;
}
CImageProcess::~CImageProcess()
{
}
#ifdef _DEBUG
void CImageProcess::Dump(CDumpContext& dc)const
{
CObject::Dump(dc);
}
void CImageProcess::AssertValid()const
{
CObject::AssertValid();
}
#endif
void CImageProcess::SetOperation(DWORD dwOperation)
{
m_dwOperation=dwOperation;
}
void CImageProcess::SetColorModel(DWORD dwColorModel)
{
m_dwColorModel=dwColorModel;
}
DWORD CImageProcess::GetColorModel() const
{
return m_dwColorModel;
}
DWORD CImageProcess::GetOperation() const
{
return m_dwOperation;
}
BYTE CImageProcess::GetAlpha(DWORD dwRGBA)
{
return (BYTE)((dwRGBA & 0xFF000000)>>24);
}
BYTE CImageProcess::GetBlue(DWORD dwRGBA)
{
return (BYTE)((dwRGBA & 0x000000FF)>>16);
}
BYTE CImageProcess::GetGreen(DWORD dwRGBA)
{
return (BYTE)((dwRGBA & 0x0000FF00)>>8);
}
BYTE CImageProcess::GetRed(DWORD dwRGBA)
{
return (BYTE)(dwRGBA & 0x00FF0000);
}
DWORD CImageProcess::PutRGB(BYTE byRed, BYTE byGreen, BYTE byBlue, BYTE byAlpha)
{
return ((((DWORD)byAlpha)<<24) | (((DWORD)byRed)<<16) | (((DWORD)byGreen)<<8) |
((DWORD)byBlue));
}
DWORD CImageProcess::PutRGB(BYTE byRed, BYTE byGreen, BYTE byBlue)
{
return (0xFF000000 | (((DWORD)byRed)<<16) | (((DWORD)byGreen<<8)) |
((DWORD)byBlue));
}
HBITMAP CImageProcess::CreateDdb(HDC hDC, int nWidth, int nHeight,
const LPBYTE lpbyBits32)
{
BYTE* pbyBits=new BYTE[sizeof(BITMAPV4HEADER)];
if(pbyBits==NULL) return NULL;
BITMAPV4HEADER* pbmih=(BITMAPV4HEADER*)pbyBits;
pbmih->bV4Size=sizeof(BITMAPV4HEADER);
pbmih->bV4Width=(LONG)nWidth;
pbmih->bV4Height=(LONG)(-nHeight);
pbmih->bV4Planes=1;
pbmih->bV4BitCount=24;
pbmih->bV4V4Compression=BI_RGB;
pbmih->bV4SizeImage=0;
pbmih->bV4XPelsPerMeter=0;
pbmih->bV4YPelsPerMeter=0;
pbmih->bV4ClrUsed=0;
pbmih->bV4ClrImportant=0;
HBITMAP hBitmap=::CreateDIBitmap(hDC,(BITMAPINFOHEADER*)pbmih,CBM_INIT,lpbyBits32,
(BITMAPINFO*)pbmih,DIB_RGB_COLORS);
delete[] pbyBits;
return hBitmap;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -