ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • C# hex string to image
    닷넷/C# 2016. 12. 7. 09:46
    반응형

    이미지가 텍스트 파일로 저장되어 있고, 그 데이터가 16진수라면

    그 파일을 읽어서 PictureBox에 불러 오는 방법.


    지식인에 답변한 거에서 아주 조금 다듬음.


    - 이벤트에 작성

    OpenFileDialog ofd = new OpenFileDialog(); // 파일열기
    if (ofd.ShowDialog() == DialogResult.OK)
    {
        string fileName = ofd.FileName;
        string imgtxt = System.IO.File.ReadAllText(fileName); // 텍스트파일내용 가져오기
        Byte[] data = HexString2Bytes(imgtxt.Substring(2)); //string 형식인 데이터의 형식을 바이트로 바꾸기
                                                            // 참고로 16진수를 나타내는 0x가 여기선 필요없으므로
                                                            // 맨 앞에 두글자를 제외하도록 substring을 사용함.
     
        MemoryStream mem = new MemoryStream(data);
       //데이터를 이미지화
        pictureBox1.Image = Image.FromStream(mem);
    }
     
    - 함수 사용 (어딘가에서 찾아서 사용하는 중...)
    private byte[] HexString2Bytes(string hexString)
    {
        //check for null
        if (hexString == nullreturn null;
        //get length
        int len = hexString.Length;
        if (len % == 1return null;
        int len_half = len / 2;
        //create a byte array
        byte[] bs = new byte[len_half];
        try
        {
            //convert the hexstring to bytes
            for (int i = 0; i != len_half; i++)
            {
                bs[i] = (byte)Int32.Parse(hexString.Substring(i * 22), System.Globalization.NumberStyles.HexNumber);
            }
        }
        catch (Exception ex)
        {
            MessageBox.Show("Exception : " + ex.Message);
        }
        //return the byte array
        return bs;
    }
    cs





    반응형

    댓글

Designed by Tistory.