c# hex string to byte image and filtering

c#, filtering, image

Solution

You don't need to apply any filters. I guess that the `hexString` variable that you are passing as input is simply a black image. The following works great for me:

class Program
{
    static void Main()
    {
        byte[] image = File.ReadAllBytes(@"c:\work\someimage.png");
        string hex = Bytes2HexString(image);

        image = HexString2Bytes(hex);
        File.WriteAllBytes("visio.png", image);
        Process.Start("visio.png");
    }

    private static byte[] HexString2Bytes(string hexString)
    {
        int bytesCount = (hexString.Length) / 2;
        byte[] bytes = new byte[bytesCount];
        for (int x = 0; x < bytesCount; ++x)
        {
            bytes[x] = Convert.ToByte(hexString.Substring(x * 2, 2), 16);
        }

        return bytes;
    }

    private static string Bytes2HexString(byte[] buffer)
    {
        var hex = new StringBuilder(buffer.Length * 2);
        foreach (byte b in buffer)
        {
            hex.AppendFormat("{0:x2}", b);
        }
        return hex.ToString();
    }
}

Problem

I need some help in converting a hex string into an image doing some researches i came up to this code: ``` private byte[] HexString2Bytes(string hexString) { int bytesCount = (hexString.Length) / 2; byte[] bytes = new byte[bytesCount]; for (int x = 0; x < bytesCount; ++x) { bytes[x] = Convert.ToByte(hexString.Substring(x*2, 2),16); } return bytes; } public bool ByteArrayToFile(string _FileName, byte[] _ByteArray) { try { System.IO.FileStream _FileStream = new System.IO.FileStream(_FileName, System.IO.FileMode.Create, System.IO.FileAccess.Write); _FileStream.Write(_ByteArray, 0, _ByteArray.Length); _FileStream.Close(); return true; } catch (Exception _Exception) { MessageBox.Show(_Exception.Message); } return false; } ``` The problem is that the resulting image is almost all black and i guess i need to apply some filters to better translate the gray-scale (since the original image is in gray-scale only) Can anyone help me? Many thanks

Original source