2013-07-24 38 views
1

我加載的1個像素的圖像成位圖,然後將其轉化爲單像素具有RGB值(255,116,25)字節[]圖像的Byte []表示實際上是什麼意思?

  _Image = "test.jpg"; 

      Bitmap testImage = new Bitmap(_Image); 

      ImageConverter converter = new ImageConverter(); 
      byte[] byteTestImage = (byte[])converter.ConvertTo(testImage,typeof(byte[])); 

。其中的每一個都可以用一個字節 來表示,所以我認爲byteTestImage對應於此。但是,byteTestImage總共是635個元素。

這些字節和1像素圖像之間的關係是什麼?

+0

看看[位圖文件格式](http://en.wikipedia.org/wiki/BMP_file_format)。 – Romoku

+1

文件本身不只是RGB元素。它還可以具有Alpha通道(另一個字節),並具有文件頭信息。例如,標題信息表示它是JPG。當你考慮這個問題的時候,這個問題必須存在,因爲一個圖像怎麼知道它至少有多高? –

回答

0

您加載的文件是JPG。它有一些額外的信息(寬度,高度,EXIF數據)不僅僅是顏色。看看https://en.wikipedia.org/wiki/JPEG

嘗試在十六進制編輯器中打開它。您甚至可以閱讀有關用於拍攝相機的信息。

+0

因此,如果我只是有一個像素值的3d數組,我想將它轉換爲位圖,我將單獨設置位圖中的像素。因爲我沒有其他信息,所以我無法將我的數組轉換爲字節[]。 – user1475729

+0

@ user1475729:JPEG只是BitMap支持的一種格式。有很多方法可以將數據導入BitMap。 –

0

在位圖中,單個像素並不總是RGB格式。這完全取決於格式。你可以有一個阿爾法組件,你可以到像素的martix指多調色板...

退房:Bitmap format