欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

c语言像素点的简单获取

程序员文章站 2022-07-14 16:36:19
...

多日的单片机,让我心烦,今天写一个获取像素点信息的程序,查百度。呵呵 并没有发现什么有用的信息,还是走老本行吧。

/********************************************************************
** 文  件  名:像素点的简单获取
** 创  建  人:yk
** 最后修改时间:2018年6月10日
*********************************************************************/
#define _CRT_SECURE_NO_WARNINGS//压制宏
#include"graphics.h"
#include"stdio.h"
#include"windows.h"
#pragma comment(lib,"Winmm.lib")
struct rgb
{
	unsigned int r;
	unsigned int g;
	unsigned int b;
};

void image()
{
	struct rgb *RGB;
	IMAGE picture;
	DWORD *pic;
	FILE *fp_rgb;
	char pic_name[30];
	char pic_name1[30];
	printf("请输入图片信息如(yyk.jpg)\n");
	scanf("%s", pic_name);
	printf("请输入保存的文件信息\n");
	scanf("%s", pic_name1);
	loadimage(&picture, pic_name);//读取图片信息
	pic = GetImageBuffer(&picture);//获取设备显存
	unsigned int h = picture.getheight();//获取图片高度
	unsigned int w = picture.getwidth();//获取图片宽度
	RGB = (struct rgb *)malloc(sizeof(struct rgb)*h*w);//分配内存
	if (!(fp_rgb = fopen(pic_name1, "w")))//打开图片文件
	{
		printf("error");
		system("pause");
		return;
	}
	fprintf(fp_rgb, "(%d,%d)", h, w);//写入文件
	for (int i = 0; i<h*w; i++)
	{
		RGB->r = GetRValue(pic[i]);        
		RGB->g = GetGValue(pic[i]);
		RGB->b = GetBValue(pic[i]);						
		fprintf(fp_rgb, "(%d,%d,%d)", RGB->r, RGB->g, RGB->b);
	}
	fclose(fp_rgb);//关闭
	free(RGB);
	printf("SUCESS!");
}

int main()
{
	printf("【请将你所要处理的图片与该程序放入同一个文件夹】\n");
	image();
	system("pause");
	return 0;
}

效果

c语言像素点的简单获取

相关标签: c rgb