user-0 提问: C语言读取8位bmp图  转换成像素输出

回复:
user: user-1
content: 引用 11 楼 qq_34811991 的回复:8位位图没有颜色表啊，格式怎么简单，不会啊 你在开玩笑嘛？8位位图怎么会没有颜色表？

user: user-2
content: 8位位图没有颜色表啊，格式怎么简单，不会啊

user: user-3
content: 引用 9 楼 dadaobiancheng 的回复:[quote=引用 8 楼 hnwyllmm 的回复:] [quote=引用 6 楼 dadaobiancheng 的回复:] [quote=引用 5 楼 hnwyllmm 的回复:] [quote=引用 3 楼 dadaobiancheng 的回复:] [quote=引用 1 楼 hnwyllmm 的回复:] 我正好写过一个，但是当时收集的资料都弄丢了，只有代码了，不要积分下载，希望对楼主有帮助： http://download.csdn.net/detail/hnwyllmm/6700471\   我想把像素的坐标一起读出来   读成一个灰度的二维数组     就是每个点上都是灰度值 用txt写出来[/quote] 我的代码里面这个函数From24or32ToGray可以从24位位图或32位位图中读取象素信息，然后转换为灰度图，楼主可以直接复制读取位图象素信息的代码，读取出来保存到文件即可 [/quote]   我直接把fDst  写成   xx.txt读出来是乱码  是不可以直接读取吗[/quote] 写的数据是二进制的[/quote]   8位图的位图也可以用这个方法来计算吗  它不应该是从颜色表中读取吗[/quote] 8位位图不用，没有颜色表，格式更简单

user: user-0
content: 引用 8 楼 hnwyllmm 的回复:[quote=引用 6 楼 dadaobiancheng 的回复:] [quote=引用 5 楼 hnwyllmm 的回复:] [quote=引用 3 楼 dadaobiancheng 的回复:] [quote=引用 1 楼 hnwyllmm 的回复:] 我正好写过一个，但是当时收集的资料都弄丢了，只有代码了，不要积分下载，希望对楼主有帮助： http://download.csdn.net/detail/hnwyllmm/6700471\   我想把像素的坐标一起读出来   读成一个灰度的二维数组     就是每个点上都是灰度值 用txt写出来[/quote] 我的代码里面这个函数From24or32ToGray可以从24位位图或32位位图中读取象素信息，然后转换为灰度图，楼主可以直接复制读取位图象素信息的代码，读取出来保存到文件即可 [/quote]   我直接把fDst  写成   xx.txt读出来是乱码  是不可以直接读取吗[/quote] 写的数据是二进制的[/quote]   8位图的位图也可以用这个方法来计算吗  它不应该是从颜色表中读取吗

user: user-0
content: 引用 5 楼 hnwyllmm 的回复:[quote=引用 3 楼 dadaobiancheng 的回复:] [quote=引用 1 楼 hnwyllmm 的回复:] 我正好写过一个，但是当时收集的资料都弄丢了，只有代码了，不要积分下载，希望对楼主有帮助： http://download.csdn.net/detail/hnwyllmm/6700471\   我想把像素的坐标一起读出来   读成一个灰度的二维数组     就是每个点上都是灰度值 用txt写出来[/quote] 我的代码里面这个函数From24or32ToGray可以从24位位图或32位位图中读取象素信息，然后转换为灰度图，楼主可以直接复制读取位图象素信息的代码，读取出来保存到文件即可 [/quote]   我直接把fDst  写成   xx.txt读出来是乱码  是不可以直接读取吗

user: user-3
content: 引用 6 楼 dadaobiancheng 的回复:[quote=引用 5 楼 hnwyllmm 的回复:] [quote=引用 3 楼 dadaobiancheng 的回复:] [quote=引用 1 楼 hnwyllmm 的回复:] 我正好写过一个，但是当时收集的资料都弄丢了，只有代码了，不要积分下载，希望对楼主有帮助： http://download.csdn.net/detail/hnwyllmm/6700471\   我想把像素的坐标一起读出来   读成一个灰度的二维数组     就是每个点上都是灰度值 用txt写出来[/quote] 我的代码里面这个函数From24or32ToGray可以从24位位图或32位位图中读取象素信息，然后转换为灰度图，楼主可以直接复制读取位图象素信息的代码，读取出来保存到文件即可 [/quote]   我直接把fDst  写成   xx.txt读出来是乱码  是不可以直接读取吗[/quote] 写的数据是二进制的

user: user-4
content: 仅供参考：#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());      for (UINT y = 0; y < height; y++)     for (UINT 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; }

user: user-5
content: 那你需要RGB转YUV,然后单拿Y出来

user: user-3
content: 引用 3 楼 dadaobiancheng 的回复:[quote=引用 1 楼 hnwyllmm 的回复:] 我正好写过一个，但是当时收集的资料都弄丢了，只有代码了，不要积分下载，希望对楼主有帮助： http://download.csdn.net/detail/hnwyllmm/6700471\   我想把像素的坐标一起读出来   读成一个灰度的二维数组     就是每个点上都是灰度值 用txt写出来[/quote] 我的代码里面这个函数From24or32ToGray可以从24位位图或32位位图中读取象素信息，然后转换为灰度图，楼主可以直接复制读取位图象素信息的代码，读取出来保存到文件即可

user: user-0
content: 引用 1 楼 hnwyllmm 的回复:我正好写过一个，但是当时收集的资料都弄丢了，只有代码了，不要积分下载，希望对楼主有帮助： http://download.csdn.net/detail/hnwyllmm/6700471\   我想把像素的坐标一起读出来   读成一个灰度的二维数组     就是每个点上都是灰度值 用txt写出来

user: user-6
content: 8位就是一个调色版，可以看成pal[256]，每个内容4字节，R，G，B，另一个对齐，转成24位输出最简单，

user: user-3
content: 我正好写过一个，但是当时收集的资料都弄丢了，只有代码了，不要积分下载，希望对楼主有帮助： http://download.csdn.net/detail/hnwyllmm/6700471