代码之家  ›  专栏  ›  技术社区  ›  vytaute

将图像转换为十六进制颜色像素并检测主导颜色

  •  0
  • vytaute  · 技术社区  · 3 年前

    我的目标是:将图像的每个像素转换为十六进制代码,其中每6个符号表示颜色,并将这些代码保存在字符串中。然后我就可以检测出,哪种颜色在图片中占主导地位。

    如何将图片转换为6个符号的十六进制代码(例如000000为黑色,FFFFFF为白色)?

    我试过这个C代码:

    using System.IO;
    using System.Runtime.Remoting.Metadata.W3cXsd2001;
    ...
    var str = new SoapHexBinary(File.ReadAllBytes("test.png")).ToString();
    Console.WriteLine("str: {0}", str);
    

    它给了我们一个字符串(我只是粘贴了一个剪子):

    89504E470D0A1A0A0000000D4948445200000026000000210806000000B538D916000000017352474200AECE1CE90000000467414D410000B18F0BFC610
    

    我想将每6个符号解释为一个颜色代码,但例如#89504E是深粉色,我的测试图片看起来就像这样:

    enter image description here

    如何将图片转换为6位十六进制颜色代码?

    0 回复  |  直到 3 年前