我想将我的程序结果从十六进制更改为十进制可以任何人帮助我吗?

问题描述 投票:-2回答:1

我已经阅读了bmp文件并获得了一个HexaDecimal结果现在我想将结果更改为十进制只能将任何一个帮助我???

我用过这些代码我得到HEXADECIMAL结果:

private void ChosseBtn_Click(object sender, EventArgs e)
{
    using (OpenFileDialog dlg = new OpenFileDialog())
    {
        dlg.Title = "Open Image";
        dlg.Filter = "bmp files (*.bmp)|*.bmp";

        if (dlg.ShowDialog() == DialogResult.OK)
        {
            var colorCodes = this.GetColorCodes(dlg.FileName);
            var str = string.Join(Environment.NewLine,
            colorCodes.Select<int[], string>(line => string.Join(" ", line.Select<int, string>(code => string.Format("{0:X8}", code))))); // string.Format("{0:X6}", code & 0x00FFFFFF) if you want RRGGBB format
            textBox1.Text = str; // requires textBox1.Multiline = true, better have monospaced font
        }
    }
}
private int[][] GetColorCodes(string path)
{
    var bitmap = new Bitmap(path);
    return Enumerable.Range(0, bitmap.Height)
                     .Select<int, int[]>(y => Enumerable.Range(0, bitmap.Width)
                     .Select<int, int>(x => bitmap.GetPixel(x, y).ToArgb()).ToArray()).ToArray();
}

我在文本框中得到了结果,如FF00但我需要小数像0白色或255黑色..

c# decimal bmp
1个回答
1
投票

您可能已从某处复制过此代码,但不知道如何根据您的需要进行调整。

您需要更改的行是此行:

colorCodes.Select<int[], string>(line => string.Join(" ", line.Select<int, string>(code => string.Format("{0:X8}", code)))));

string.Format("{0:X8}", code)将整数格式化为十六进制。如果你不想要十六进制,那就做ToString

colorCodes.Select<int[], string>(line => string.Join(" ", line.Select(x => x.ToString()))));
© www.soinside.com 2019 - 2024. All rights reserved.