c语言如何打开24位图片

作者&投稿:南荀 (若有异议请与网页底部的电邮联系)
怎么编辑一个打开图片的C语言程序?~

这跟图像相关了,最好装一下Opencv的库,可以去opencv中文网看看

可以去看windows窗口编程

ITMAPFILEHEADER:文件信息头
LPBITMAPINFOHEADER:位图信息头指针
LPBYTE:像素数据指针

假设你的图片名为:“图片.bmp”。

1、你用VC++建立一个MFC(exe)工程,命名为“My”,在弹出的“MFC应用程序向导-步骤1”中选“单文档”,然后点“完成”->“确定”。

2、在“MyView.h”文件中找到代码“CMyDoc* GetDocument();”在其下方添加如下代码:
BITMAPINFOHEADER bmih;
LPBYTE pBits;
BOOL Read(char* s);

3、然后打开“MyView.cpp”文件,在最下面写如下代码:
BOOL CMyView::Read(char* s)
{
CFile file;
BITMAPFILEHEADER bmfh;

//打开文件
if(!file.Open(s,CFile::modeRead))
{
AfxMessageBox("File cannot open!");
return FALSE;
}

//读文件信息头
file.Read( (LPVOID)&bmfh, sizeof(bmfh) );
if(bmfh.bfType != 0x4d42)
{
AfxMessageBox("This is not a bmp file!");
return FALSE;
}

//读位图信息头
int infoSize = bmfh.bfOffBits - sizeof(bmfh);
bmih = (LPBITMAPINFOHEADER)new BYTE[infoSize];
file.Read( (LPVOID)bmih, infoSize);
if(bmih->biBitCount!=24)
{
AfxMessageBox("The number of colors is not valid!");
return FALSE;
}

//读图像数据
pBits = new BYTE[bmih->biSizeImage];
file.Read( (LPVOID)pBits, bmih->biSizeImage);

return TRUE;
}

4、往上找,找到构造函数:CMyView::CMyView()
在其中添加代码:
Read("d:\\picture\\图片.bmp");

5、往下找,找到OnDraw函数,在该函数的第三行添加代码:
if(bmih && pBits)
{
::StretchDIBits(pDC->GetSafeHdc(),0,0,bmih->biWidth,bmih->biHeight,0,0,bmih->biWidth,bmih->biHeight,pBits,(LPBITMAPINFO)bmih,DIB_RGB_COLORS,SRCCOPY);
}

运行即可。我已试过,可以打开并显示。希望你一步一步照做,代码不要写错!

另外,团IDC网上有许多产品团购,便宜有口碑


c语言如何打开24位图片
1、你用VC++建立一个MFC(exe)工程,命名为“My”,在弹出的“MFC应用程序向导-步骤1”中选“单文档”,然后点“完成”->“确定”。2、在“MyView.h”文件中找到代码“CMyDoc* GetDocument();”在其下方添加如下代码:BITMAPINFOHEADER bmih;LPBYTE pBits;BOOL Read(char* s);3、然后打开“My...

用c语言读取24位位图bmp文件
可以使用C语言标准函数库中的fopen、fseek、fclose等系列函数来打开bmp位图文件,以及进行相应的处理,下面是一个demo,仅供参考。以下代码在vc6.0中编译通过。include <stdio.h>#include <stdlib.h>#define BITMAPFILEHEADERLENGTH 14 \/\/ The bmp FileHeader length is 14#define BM 19778 \/\/ The...

如何用c语言读取一张24位bmp图,将颜色信息保存在二维数组中
最直接的方法就是从文件里直接读出来,文件开头会有个bitmap数据头,是个数据结构里边,有位图数据的起始偏移量,图宽度和高度(像素为单位),和大小(结构体字段格式百度就能搜到),你只要将文件流指针移动到数据起始位置,读出所有数据到数组即可。。。

C语言中 假如一个变量val,val<<8>>24是什么意思?
把这个变量的值的2进制码,先左移8位再右移24位 我举个简单的例子吧:int i = 1;int x = i << 3 >> 2;上面的表达式结果是2 对于整型来说,左移一位相当于乘2,右移一位相当于除2,所以1左移3位是8,再右移两位是2 补充: val<<24>>24未必是多此一举 比如对于一个16位长的数...

c语言24位寄存器是什么格式
寄存器为24位有符号位,补码形式存储,最高位为符号位。 1、数据为正数,则直接读取成32位的数据,进行使用就行了。 2、数据为负数,则当值为-3时,寄存器内数据应为0xfffffe,当需要将24位数据存储到32位数据时,需要判断“

C语言问题!帮帮忙!
1. 24位表示小数部分是指小数部分有23位2进制位,然后剩下的一位在最前面表示符号“+”“-”,就是表示小数是正的还是负的。2. 如果你看的是C语言初级入门书,这个数字范围不要太较真,只要知道单精度浮点数可以表示这么大的范围就行了,一般也用不到。如果你一定要看,那你得学《计算机组成...

用汇编语言如何实现 3个 16位二进制数相加
你这是两个三字节的二进制数,即24位的二进制数,不叫3个16位二进制数,只是两个数相加。你的程序这么写,每一个数是先存放高位,后放低位。如被加数放20H,先是放最高位,再放21H,最低位放22H。可通常是20H先放低位,22H后放高位,这样,程序就要改了。还按你的程序的写法,修改如下,其它...

C语言 24位真彩色bmp图像按字节读取多出一个字节
fread(image,1,width_temp*4,fp1);仔细看,你只是把width*3\/4*4,这样做没有意义,反而平白无故损失了精度,因为在除以4的过程中,小数部分会被舍弃。如果你想遍一个适用于任意大小和任意颜色位数的bmp图像处理程序,并且你还希望以行为单位进行图像处理,该4字节对齐就对齐,修改你的结构吧。

易语言在画板上画了个圆,如何快速把它用颜色填满?
.版本 2 点阵编辑窗.画笔颜色 = #黑色‘线的颜色 点阵编辑窗.刷子颜色 = #红色‘填充的颜色 点阵编辑窗.画椭圆 (10, 10, 100, 100)'具体自己观察吧

跪求24位CRC校验的C语言程序,生成多项式g(x)=x^24+x^23+x^6+x^5+x+1
+x+1的24位CRC。初始值为0xFFFFFF。AN-1160 Rev. A | Page 7 of 8 NewCRC[6] = D[28] ^ D[18] ^ D[5] ^ D[0] ^ C[10] ^ C[20];NewCRC[7] = D[29] ^ D[19] ^ D[6] ^ D[1] ^ C[11] ^ C[21];NewCRC[8] = D[30] ^ D[20] ^ D[7] ^ D[2] ^...

巴东县15297145665: c语言如何打开24位图片 -
文冠恪然: ITMAPFILEHEADER:文件信息头 LPBITMAPINFOHEADER:位图信息头指针 LPBYTE:像素数据指针 假设你的图片名为:“图片.bmp”.1、你用VC++建立一个MFC(exe)工程,命名为“My”,在弹出的“MFC应用程序向导-步骤1”中选“...

巴东县15297145665: 用c语言读取24位位图bmp文件 -
文冠恪然: 可以使用C语言标准函数库中的fopen、fseek、fclose等系列函数来打开bmp位图文件,以及进行相应的处理,下面是一个demo,仅供参考.以下代码在vc6.0中编译通过.#include <stdio.h>#include <stdlib.h>#define ...

巴东县15297145665: 如何用c语言读取一张24位bmp图,将颜色信息保存在二维数组中 -
文冠恪然: 最直接的方法就是从文件里直接读出来,文件开头会有个bitmap数据头,是个数据结构里边,有位图数据的起始偏移量,图宽度和高度(像素为单位),和大小(结构体字段格式百度就能搜到),你只要将文件流指针移动到数据起始位置,读出所有数据到数组即可....

巴东县15297145665: 有谁知道怎样用C语言打开图片? -
文冠恪然: 原型:int WINAPI icePub_dispImg(HWND hWnd,char *strImgFilename,int x,int y) 输入:hWnd 窗体或控件句柄 strImgFilename 待显示的图片文件名 x x坐标 y y坐标 输出:{ typedef int (WINAPI ICEPUB_DISPIMG)(HWND hWnd,char *...

巴东县15297145665: 在C语言中有没有可以打开一个图片的函数?在那个头文件里? -
文冠恪然: C语言没有,如果你想要处理图形,而且你知道图形文件里面每个字节代表什么意思,那么你可以用普通打开二进制文件的方法来打开图片文件.如果你想要显示图形到屏幕上,那么,原来可以用TC里面的某几个特殊函数,但是这几个函数是dos时代的,在win vista和win7里面能否运行都成问题,我记得已经不兼容了.实际上,在windows下学了C++,用VC里面的MFC来开发程序,就可以读取和显示图形了.但是这需要很长一段时间的学习...

巴东县15297145665: 怎样用C语言显示一张jpg的图片呢 -
文冠恪然: 可以用函数OleLoadPicture从包含有图像数据的流中装载图像. 具体实现代码如下:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 ...

巴东县15297145665: C语言怎样显示一张图片? -
文冠恪然: 1、如果有图片(例如 wzzx.jpg) 程序中插一句: system("mspaint wzzx.jpg"); 就可以 在运行时显示这张图片. 用字符串变量调用也可以: char pic_name[80]="wzzx.jpg"; char cmd[100]; sprintf(cmd,"mspaint %s",pic_name); system(cmd...

巴东县15297145665: C语言如何输出这种效果,求代码 -
文冠恪然: #include int main() { FILE *fp; char data[1024]; fp=fopen("c:\\1.txt","w"); if(fp==NULL) { printf("文件打开错误\n"); return 0; } fread(data,1024,1,fp);//这句用来从文件中读取1024字节,只读一次 printf("%s\n",data); fclose(fp); return 0; }

巴东县15297145665: 请问C语言怎么调用图片 -
文冠恪然: 直接调用并显示JPG BMP等格式图片的函数好像没有,要自己编写.首先要弄清楚图片格式的编码方式,然后设置分辨率,可以显示出来.void far getimage(int left,int top,int right,int bottom,void far *buf) 说明:把屏幕图形部分拷贝到由BUF所指向的内在区域,左上角和右下角图标.用函数IMAGESIZE()来确定存储图像所需字节数.用GETIMAGE()存储的图像可以用PUTIMAGTE()函数写到屏幕上.

巴东县15297145665: C语言怎么调用图片? -
文冠恪然: binary open image file2. load image data to memory3. op (display/convert.) image data 记得采纳啊

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网