1
這是一件非常簡單的事情,但我沒有真正接受過C++培訓。我只需要獲取圖像的每個像素值。讓我們說它是「C:\ LM3S811 \ red.bmp」,169x104像素。使用Gdiplus獲取圖像的像素值
通過搜索這個主題,我確信來自Microsoft SDK的gdiplus應該能夠做到這一點。下面是我的代碼來獲取每個像素的紅色值:
#include <iostream>
#include <windows.h>
#include <gdiplus.h>
using namespace Gdiplus;
using namespace std;
#pragma comment (lib, "Gdiplus.lib")
int main(){
// set bitmap to "C:\LM3S811\red.bmp"
Bitmap myBitmap (L"C:\\LM3S811\\red.bmp");
Color pixelColor;
// print red value of each pixel of 169x104 pixel
for (int y = 1; y <= 104; y++){
for (int x = 1; x <= 169; x++){
myBitmap.GetPixel(x, y, &pixelColor);
cout << (int)pixelColor.GetRed() << ",";
}
}
// end
cout << endl;
system("PAUSE");
return 0;
}
當我運行的代碼,它總是給所有像素爲零。如果我故意設置,也就是Color pixelColor(0, 255, 255, 255);
,那麼它會給出正確的值255.似乎myBitmap.GetPixel(x, y, &pixelColor);
沒有正確返回。請讓我知道上面的代碼的錯誤。
您的幫助真的很感謝。謝謝!