资源简介
对于一个mfc位图运用vc++实现彩色图与灰度图的转换
代码片段和文件信息
//Download by http://www.NewXing.com
// dibapi.cpp
//
// Source file for Device-Independent Bitmap (DIB) API. Provides
// the following functions:
//
// PaintDIB() - Painting routine for a DIB
// CreateDIBPalette() - Creates a palette from a DIB
// FindDIBBits() - Returns a pointer to the DIB bits
// DIBWidth() - Gets the width of the DIB
// DIBHeight() - Gets the height of the DIB
// PaletteSize() - Gets the size required to store the DIB‘s palette
// DIBNumColors() - Calculates the number of colors
// in the DIB‘s color table
// CopyHandle() - Makes a copy of the given global memory block
//
// This is a part of the Microsoft Foundation Classes C++ library.
// Copyright (C) 1992-1997 Microsoft Corporation
// All rights reserved.
//
// This source code is only intended as a supplement to the
// Microsoft Foundation Classes Reference and related
// electronic documentation provided with the library.
// See these sources for detailed information regarding the
// Microsoft Foundation Classes product.
#include “stdafx.h“
#include “dibapi.h“
#include
#include
#include
#define DIB_HEADER_MARKER ((WORD) (‘M‘ << 8) | ‘B‘)
#ifdef _MAC
#define SWAPWORD(x) MAKEWORD(HIBYTE(x) LOBYTE(x))
#define SWAPLONG(x) MAKELONG(SWAPWORD(HIWORD(x)) SWAPWORD(LOWORD(x)))
void ByteSwapHeader(BITMAPFILEHEADER* bmiHeader);
void ByteSwapInfo(LPSTR lpHeader BOOL fWin30Header);
#endif
/*************************************************************************
*
* PaintDIB()
*
* Parameters:
*
* HDC hDC - DC to do output to
*
* LPRECT lpDCRect - rectangle on DC to do output to
*
* HDIB hDIB - handle to global memory with a DIB spec
* in it followed by the DIB bits
*
* LPRECT lpDIBRect - rectangle of DIB to output into lpDCRect
*
* CPalette* pPal - pointer to CPalette containing DIB‘s palette
*
* Return Value:
*
* BOOL - TRUE if DIB was drawn FALSE otherwise
*
* Description:
* Painting routine for a DIB. Calls StretchDIBits() or
* SetDIBitsToDevice() to paint the DIB. The DIB is
* output to the specified DC at the coordinates given
* in lpDCRect. The area of the DIB to be output is
* given by lpDIBRect.
*
************************************************************************/
BOOL WINAPI PaintDIB(HDC hDC
LPRECT lpDCRect
HDIB hDIB
LPRECT lpDIBRect
CPalette* pPal)
{
LPSTR lpDIBHdr; // Pointer to BITMAPINFOHEADER
LPSTR lpDIBBits; // Pointer to DIB bits
BOOL bSuccess=FALSE; // Success/fail flag
HPALETTE hPal=NULL; // Our DIB‘s palette
HPALETTE hOldPal=NULL; // Previous palette
/* Check for valid DIB handle */
if (hDIB == NULL)
return FALSE;
/* Lock down the DIB and get a pointer to the begin
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
....... 46344 2004-06-30 00:45 www.NewXing.com\源代码\MyDIP.aps
....... 1078 2004-05-20 14:25 www.NewXing.com\源代码\res\Toolbar.bmp
....... 66614 2004-06-30 00:47 www.NewXing.com\测试图片\彩色lena图像.BMP
....... 66614 2004-06-30 00:47 www.NewXing.com\测试图片\转换为灰度图像.BMP
....... 2615 2004-06-30 00:43 www.NewXing.com\源代码\MyDIP.clw
文件 23820 2011-10-06 00:13 www.NewXing.com\源代码\dibapi.cpp
文件 2544 2011-10-06 00:13 www.NewXing.com\源代码\MainFrm.cpp
文件 3195 2011-10-06 00:13 www.NewXing.com\源代码\mydib.cpp
文件 4196 2011-10-06 00:13 www.NewXing.com\源代码\MyDIP.cpp
文件 4045 2011-10-06 00:13 www.NewXing.com\源代码\MyDIPDoc.cpp
文件 7080 2011-10-06 00:13 www.NewXing.com\源代码\MyDIPView.cpp
文件 245 2011-10-06 00:13 www.NewXing.com\源代码\StdAfx.cpp
....... 4785 2004-06-30 00:47 www.NewXing.com\源代码\MyDIP.dsp
....... 533 2004-05-20 14:25 www.NewXing.com\源代码\MyDIP.dsw
....... 36864 2004-06-30 00:48 www.NewXing.com\源代码\Release\MyDIP.exe
文件 1914 2011-10-06 00:13 www.NewXing.com\源代码\dibapi.h
文件 1619 2011-10-06 00:13 www.NewXing.com\源代码\MainFrm.h
文件 110 2011-10-06 00:13 www.NewXing.com\源代码\mydib.h
文件 1383 2011-10-06 00:13 www.NewXing.com\源代码\MyDIP.h
文件 1868 2011-10-06 00:13 www.NewXing.com\源代码\MyDIPDoc.h
文件 1890 2011-10-06 00:13 www.NewXing.com\源代码\MyDIPView.h
文件 912 2011-10-06 00:13 www.NewXing.com\源代码\Resource.h
文件 1078 2011-10-06 00:13 www.NewXing.com\源代码\StdAfx.h
....... 1078 2004-05-20 14:25 www.NewXing.com\源代码\res\MyDIP.ico
....... 1078 2004-05-20 14:25 www.NewXing.com\源代码\res\MyDIPDoc.ico
....... 189440 2009-05-11 14:46 www.NewXing.com\源代码\MyDIP.ncb
....... 54784 2009-05-11 14:46 www.NewXing.com\源代码\MyDIP.opt
....... 1031 2009-05-11 14:46 www.NewXing.com\源代码\MyDIP.plg
....... 12279 2004-06-30 00:45 www.NewXing.com\源代码\MyDIP.rc
....... 397 2004-05-20 14:25 www.NewXing.com\源代码\res\MyDIP.rc2
............此处省略8个文件信息
相关资源
- VC++ 迷宫游戏
- VC++压缩解压zip文件支持密码
- vc++ opengl 下雪场景实现
- VC++制作的屏幕录像
- BP神经网络VC++实现
- 图像拼接使用VC++实现完成两幅又重叠
- VC++使用SQL查询操作数据库
- 读取串口数据并画出曲线图的VC++程序
- 用WINSOCK实现聊天室的VC++程序设计
- 学生成绩管理系统 C、VC++
- 利用ICMP数据包探测网络中的活动主机
- 使用败者树实现外排序vc++
- LIBCID.LIB
- 步态识别C++实现
- VC++编写的音频播放器代码
- 服务端Node.js和VC++程序间通过SOCKET通信
- VC++School管理系统(学生、教师、在职
- 实验二、GIS图形数据对象的组织一
- WindowsVC++获取CPU整体使用率
- vc++ 运用MFC实现基于AfxMessageBox的 自定
- VC++中文繁体、简体BIG-GBK编码转换程序
- 利用opengl 组件的基础上使用VC++编写的
- 灰度图像二值化代码
- VC++编写DLL导出函数及其调用方法
- OpenCV种子填充实现彩色图像分割的代
- 马石安编写的VC++程序设计与应用程序
- 本例程采用VC++ 实现JPG格式图片的打开
- VC++异步通信的socket类
- 固高GT编程手册的Vc++单轴运动程序
- AES加密解密系统 VC++6.0 实现
评论
共有 条评论