Bir fotoğraf makinesinden gelen ve bir Bitmap
dönüştürmem gereken RGB8 biçiminde ham piksel verileri var. Ancak, Bitmap PixelFormat
sadece RGB 16, 24, 32 ve 48 biçimlerini destekliyor gibi görünüyor.RGB8 bayt [] öğesini Bitmap'e dönüştürün
PixelFormat.Format8bppIndexed
'u kullanmayı denedim, ancak görüntü rengi bozuk ve ters çevrilmiş görünüyor.
public static Bitmap CopyDataToBitmap(byte[] data)
{
var bmp = new Bitmap(640, 480, PixelFormat.Format8bppIndexed);
var bmpData = bmp.LockBits(
new Rectangle(0, 0, bmp.Width, bmp.Height),
ImageLockMode.WriteOnly, bmp.PixelFormat);
Marshal.Copy(data, 0, bmpData.Scan0, data.Length);
bmp.UnlockBits(bmpData);
return bmp;
}
Bu veri türünü doğru şekilde dönüştürmenin başka bir yolu var mı?
Faydalı makaleler: [bu] (http://msdn.microsoft.com/en-us/library/ windows/desktop/ee719797 (v = vs85) .aspx) ve [this] (http://msdn.microsoft.com/en-us/library/ms969901.aspx) –
Meraklı: Ne tür bir model/model kamera üretiyor bu format? Ayrıca: [this] (http://www.theimagingsource.com/en_US/support/documentation/icimagingcontrol-activex/PixelformatRGB8.htm) kaynak 8 bitlik bir tek renkli format olduğunu söylüyor. – TaW
[bu kaynak] 'dan başka bir alıntı (http://www.theimagingsource.com/en_US/support/documentation/icimagingcontrol-activex/PixelformatRGB8.htm): _RGB aşağıdan yukarıya, ilk satırın dizini (satır-1_ – TaW