数据源是一个身份证识别器, 刷卡后导出的xml 文件中的一部分,只知道这部分是与 身份证照片相关的,但弄不清楚如何转为图片。
下面是我写的代码, 能运行但结果图片是看不到, 请大神指点!谢谢!using System;
using System.IO;
using System.Linq;namespace ConsoleApp10
{
class Program
{
static void Main(string[] args)
{
string str = @"574c66007e00320000ff851d5151513e710dd564f377a09724cafc
59cdf1951982aff10838cbb3d6bf3bb590954e40068ecbbf9f182cd5f655fb96ffbb1beb88b215a336ead8c5ad50f60823c4cf104ae913
cca236872d19c6d1aed65251515a3eae5123418ce881f3915c0473c7037b7a0e93df00091bb494921c577daf72bd843a278688d859f35c
1d53362c046bfdc8e243c715200de5f09556f6fda11ebcc0ca7e698cd65c7e588cd6c1571aae51f4a131008bd2666619a5e642a2d0dcad
f45821b07d3d1e97f3e258259c0a8978f74b5ba0c0caded242f3b7423afd85583e35f89d83a77083f89338dfae510e41291ce9867ba38f
ef1e2208c3a08020b8599849fc953a3fbaca6fdab58eec9d2c7ac5b5f4aa07d920978d687dd131bd36f2fb9cc70742271a3f0f5b097b68
d4603bdbff0a91bce5018849400d6a81b8c014b292835f2475f889ef6c449ffe1eb3831d4a87af14f121a489820934df21ff1641ebf79e
8c02ea8cfcf32ef550328c803dde5740f828a375d44277f33629ccecae517d31814d0b4a65daf095b6638a64812a0940e3c307f704edc2
e01122ecb55a95065fcb7aed2c7b50346848caa461f63689b1e5c68fa2f64087b5c563619fb4a4241da23897049e70193e3ec4cedb2216
a5b256390e9950a15d50c09e6f62f185877238ab6ad1ec12a94708c0964b98df587626f7f9c4c506b0b51e8809bc7394b972776bc8f428
b4e3a89db16f7ce2661a0ae95a4de05ccba9403c8a6995d113e1d23b3431c263a0b4e95f4254cb1d3fa9b84307d78508e5ed3c17a3a76e
8ee480079d3907798ae4a971b3e53f496dff3f92c65ed1d4ec5fbad70cff163cded3d9c6a7bf8662583a853e4ed34b697ec03f38c62895
2202cb903caad9f5261096b9ee3b6ba277608ce559d0c7c3141d8ac81cca63325397c9bbae519be80ddf83bcf865a4d23133596c5e58c4
ff4a0b00189c6b63932e77f7ae5103234e55dc768e5502a5d577ad3fba071eccc46736bdbd24c198d0ba96b0e3e5693b7fa432e423093e
a7e707b65aa615fce4744a670a565e929105bffe603997f78af4ea9a31e4c789c81bff8040111d50116eff79ea9abe45668c8e830503a4
cfb2fdbd15fd1757201a162741573f380bb901b45c8c4c28273318a838cf799fa664e2662a43960081e79eaab6f1f78afee99c4c7eac8b
59cb7d7ed5b02bab642479f9f4df918b7d5a3eea9a5409d266f52b7b22896469cf28f1e8b41a7b9df24e0dd3acb167f4b9a68c5af6273e
bd1a0ae227b532bd644f1225ada895329bf8be93b3361a94ce2148e47453918c385f7b8fc836016288228e5a3e1f48633eb012a12b9ec7
6c9c33cb332c5868fb8626e4a528c50aef7aebf09709a9354beb10a515537539ef5387399b6cb01a03024425c76ba750c99a287409a4fd
8d6f92fe09c2d1";
str = str.Replace("\r", "").Replace("\n", "").Replace("\t", "").Replace(" ", "");
try
{
StringToImage(str, "d:\\abc.jpg");
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Console.Read();
} static void StringToImage(string hexString, string path)
{
byte[] arr = hexString.ToCharArray().Select(x => Convert.ToByte(x.ToString(), 16)).ToArray();
using (FileStream fs = File.Create(path))
{
fs.Write(arr, 0, arr.Length);
fs.Flush();
fs.Close();
}
}
}
}
下面是我写的代码, 能运行但结果图片是看不到, 请大神指点!谢谢!using System;
using System.IO;
using System.Linq;namespace ConsoleApp10
{
class Program
{
static void Main(string[] args)
{
string str = @"574c66007e00320000ff851d5151513e710dd564f377a09724cafc
59cdf1951982aff10838cbb3d6bf3bb590954e40068ecbbf9f182cd5f655fb96ffbb1beb88b215a336ead8c5ad50f60823c4cf104ae913
cca236872d19c6d1aed65251515a3eae5123418ce881f3915c0473c7037b7a0e93df00091bb494921c577daf72bd843a278688d859f35c
1d53362c046bfdc8e243c715200de5f09556f6fda11ebcc0ca7e698cd65c7e588cd6c1571aae51f4a131008bd2666619a5e642a2d0dcad
f45821b07d3d1e97f3e258259c0a8978f74b5ba0c0caded242f3b7423afd85583e35f89d83a77083f89338dfae510e41291ce9867ba38f
ef1e2208c3a08020b8599849fc953a3fbaca6fdab58eec9d2c7ac5b5f4aa07d920978d687dd131bd36f2fb9cc70742271a3f0f5b097b68
d4603bdbff0a91bce5018849400d6a81b8c014b292835f2475f889ef6c449ffe1eb3831d4a87af14f121a489820934df21ff1641ebf79e
8c02ea8cfcf32ef550328c803dde5740f828a375d44277f33629ccecae517d31814d0b4a65daf095b6638a64812a0940e3c307f704edc2
e01122ecb55a95065fcb7aed2c7b50346848caa461f63689b1e5c68fa2f64087b5c563619fb4a4241da23897049e70193e3ec4cedb2216
a5b256390e9950a15d50c09e6f62f185877238ab6ad1ec12a94708c0964b98df587626f7f9c4c506b0b51e8809bc7394b972776bc8f428
b4e3a89db16f7ce2661a0ae95a4de05ccba9403c8a6995d113e1d23b3431c263a0b4e95f4254cb1d3fa9b84307d78508e5ed3c17a3a76e
8ee480079d3907798ae4a971b3e53f496dff3f92c65ed1d4ec5fbad70cff163cded3d9c6a7bf8662583a853e4ed34b697ec03f38c62895
2202cb903caad9f5261096b9ee3b6ba277608ce559d0c7c3141d8ac81cca63325397c9bbae519be80ddf83bcf865a4d23133596c5e58c4
ff4a0b00189c6b63932e77f7ae5103234e55dc768e5502a5d577ad3fba071eccc46736bdbd24c198d0ba96b0e3e5693b7fa432e423093e
a7e707b65aa615fce4744a670a565e929105bffe603997f78af4ea9a31e4c789c81bff8040111d50116eff79ea9abe45668c8e830503a4
cfb2fdbd15fd1757201a162741573f380bb901b45c8c4c28273318a838cf799fa664e2662a43960081e79eaab6f1f78afee99c4c7eac8b
59cb7d7ed5b02bab642479f9f4df918b7d5a3eea9a5409d266f52b7b22896469cf28f1e8b41a7b9df24e0dd3acb167f4b9a68c5af6273e
bd1a0ae227b532bd644f1225ada895329bf8be93b3361a94ce2148e47453918c385f7b8fc836016288228e5a3e1f48633eb012a12b9ec7
6c9c33cb332c5868fb8626e4a528c50aef7aebf09709a9354beb10a515537539ef5387399b6cb01a03024425c76ba750c99a287409a4fd
8d6f92fe09c2d1";
str = str.Replace("\r", "").Replace("\n", "").Replace("\t", "").Replace(" ", "");
try
{
StringToImage(str, "d:\\abc.jpg");
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Console.Read();
} static void StringToImage(string hexString, string path)
{
byte[] arr = hexString.ToCharArray().Select(x => Convert.ToByte(x.ToString(), 16)).ToArray();
using (FileStream fs = File.Create(path))
{
fs.Write(arr, 0, arr.Length);
fs.Flush();
fs.Close();
}
}
}
}
byte[] arr = hexString.Select((x, i) => new { x, i })
.GroupBy(x => x.i / 2).Select(x => x.First().x.ToString() + x.Last().x.ToString())
.Select(x => Convert.ToByte(x, 16)).ToArray();
现在转换出来但是这个文件并非有效的图片格式
{
string path = string.Format("{0}/{1}{2}.png", System.Environment.CurrentDirectory, System.DateTime.Now.ToString("yyyyMMddHHmmss"), fileName);
byte[] bytes = Convert.FromBase64String(buffer);
MemoryStream ms = new MemoryStream();
ms.Write(bytes, 0, bytes.Length);
System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(ms);
if (Directory.Exists(path))
{
Directory.Delete(path);
}
bmp.Save(path);
return path;
}