簡體   English   中英

C從位圖讀取顏色

[英]C Read colors from Bitmap

我正在加載像素的顏色並寫入一個一字節的變量。 當我想讀取該顏色(紅色像素)時,應該得到以下結果:255但是,值是:4294967296。由此可見,該值已記錄在32字節變量中。 為什么會這樣?

struct RGBpix{
 char R;
 char G;
 char B;
}typedef RGB;

...

RGB **data=(RGB **)malloc(sizeof(RGB *)*Picture.biWidth);
    for(i = 0; i < Picture.biWidth; i++){
        data[i] = (RGB*) malloc(sizeof(RGB) *Picture.biHeight);
    }

...

for(i=0;i<Picture.biWidth;i++){
        for(j=0;j<Picture.biHeight;j++){

        fread(&data[i][j].R, 1, 1,bmpFile);
        fread(&data[i][j].G, 1, 1,bmpFile);
        fread(&data[i][j].B, 1, 1,bmpFile);
        }

    }
    printf("%Ld", data[0][1].R);

char在您的計算機上似乎是簽名類型。 使用unsigned char避免符號擴展。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM