ARGB to YUV && Color Spaces in .NET

本文关键字:amp in NET Spaces Color ARGB to YUV | 更新日期: 2023-09-27 17:56:31

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

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

仅此而已)

谢谢!

ARGB to YUV && Color Spaces in .NET

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

根据您在拥有以下可能性后要对颜色执行的操作:

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

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

色彩空间之间的转换

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

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