1

我注意到Colorstruct fromSystem.Drawing代表ARGB颜色空间中的颜色。所以有几个问题:

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

就这些了)

谢谢!

4

1 回答 1

2

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

取决于您在拥有这些可能性后想要对颜色做什么:

  • 您只需剪切 alpha 并丢弃透明度

  • 您转换为还包含 alpha 通道的 AYUV

颜色空间之间的转换

将位图转换为 byte[] 的一种可能性是将其写入内存流并逐字读取。

MemoryStream stream = new MemoryStream();
bitmap.Save(stream, ImageFormat.Bmp);
byte[] data = stream.ToArray();
于 2011-05-16T21:43:05.737 回答