读取图片并显示每个像素处的RGB值

      不记得在网上什么地方见到的demo了,感觉会有时候会用到。就是读取一幅图片每个像素处的RGB三个通道的值。代码如下,代码很简单,就不解释了,主要是那个gdi中的函数用的少:

#include <iostream>

#include <fstream>

#include <string>

#include <windows.h>

#include <gdiplus.h>

#pragma comment(lib, "gdiplus.lib")


using namespace std;

using namespace Gdiplus;


int main()

{

	GdiplusStartupInput gdiplusstartupinput;

	ULONG_PTR gdiplustoken;

	GdiplusStartup(&gdiplustoken, &gdiplusstartupinput, NULL);

	wstring infilename(L"1.jpg");

	string outfilename("color.txt");

	//读图片

	Bitmap* bmp = new Bitmap(infilename.c_str());

	UINT height = bmp->GetHeight();

	UINT width = bmp->GetWidth();

	cout << "width " << width << ", height " << height << endl;

	Color color;

	ofstream fout(outfilename.c_str());

	fout<<"structure"<<endl;


	for (int y = 0; y < height; y++)

		for (int x = 0; x < width; x++)

		{

			bmp->GetPixel(x, y, &color);

			fout << x << ";" << y << ";"

				<< (int)color.GetRed() << ";"

				<< (int)color.GetGreen() << ";"

				<< (int)color.GetBlue() << endl;

		}


		fout.close();

		delete bmp;

		GdiplusShutdown(gdiplustoken);

		return 0;

}

      源代码下载:下载地址

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值