2010-05-28 42 views
0

我是新來的C#和我敢肯定,我失去了的東西在這裏簡單的位圖。建設和渲染從雙陣列

我試圖建立在一個雙陣列整數值(0-255)的位圖,然後呈現在一個PictureBox。我認爲我的位圖正在生成,但它不顯示在我的PictureBox中。

Bitmap bmp = new Bitmap(image_width, image_height); 

Color pxl_color = new Color(); 

for (int i = 0; i < image_width; i++) 
{ 
    for (int j = 0; j < image_height; j++) 
    { 
     pxl_color = Color.FromArgb(array_bitmap[i][j]); 
     bmp.SetPixel(i, j, pxl_color); 
    } 
} 

PictureBox1.Image = bmp; 

在此先感謝。

編輯:

更改:

pxl_color=Color.FromArgb(array_bitmap[i][j]); 

要:

pxl_color=Color.FromArgb(array_bitmap[i][j],array_bitmap[i][j],array_bitmap[i][j]); 

解決了這個問題。

回答

1

檢查你沒有將你的圖像通過透明色的alpha值設置爲零。 32位ARGB值的字節順序是AARRGGBB。由AA表示的最高有效字節(MSB)是阿爾法分量值。確保顏色數組中的alpha大於零。

也嘗試設置PictureBox sizeMode AutoSize

+0

你的第一點是我需要的。非常感謝。 – Amichai 2010-05-28 03:44:32

0

此代碼工作對我來說,就是,除了我產生的,而不是使用array_bitmap隨機值。檢查並確保您的位圖對象由於某種原因未被GC銷燬(可能將其存儲在實例變量中)。它也可能是一個繪畫問題,您必須刷新或重新繪製圖片框或整個表單。