2011-05-16 82 views
1

我注意到Color结构System.Drawing代表颜色ARGB色彩空间。所以有一些问题:ARGB到YUV && NET中的颜色空间

  • 如何转换图像之间的ARGB和YUV在c#中?我找到了描述RGB到YUV转换的公式。那么我应该如何处理alpha通道呢?
  • 是否有支持不同颜色空间的免费/试用库?或者我如何以最好的方式自己实现它?
  • 如何将“位图”表示为二维数组并具有迭代能力?继承是实现这一目标的唯一方法吗?

这一切还)

谢谢!

回答

2

您不能直接将argb转换为YUV(无损),因为YUV不包含alpha信息。

取决于你想要做的颜色,你有这些可能性后什么:

  • 你只是削减阿尔法和丢弃的透明度

  • 你转换到包含 也是一个AYUV α通道

conversion between color spaces

将位图转换为字节[]的一种可能性是将其写入存储器流中,并且将其读取。

MemoryStream stream = new MemoryStream(); 
bitmap.Save(stream, ImageFormat.Bmp); 
byte[] data = stream.ToArray();