我注意到 Color 结构从 System.Drawing 表示颜色在 ARGB 色彩空间。所以有一些问题:

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

仅此而已)

谢谢!

有帮助吗?

解决方案

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

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

  • 你只需削减alpha并丢弃透明度

  • 您转换为包含以下内容的AYUV 也是一个alpha通道

色彩空间之间的转换

将位图转换为byte[]的一种可能性是将其写入memorystream并明智地读取它。

MemoryStream stream = new MemoryStream();
bitmap.Save(stream, ImageFormat.Bmp);
byte[] data = stream.ToArray();
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top