在文本框中显示字节数组

时间:2017-11-20 03:41:53

标签: c# vb.net

下面是我用C#语言获取图像的字节数组时使用的代码。在文本框中显示bArr字节数组的代码是什么?

C#

Image img = Image.FromFile("C:\\Users\\-HELEMINNA-\\Pictures\\633a7f6c0d21cca1212a25d6867f2284.jpg");
byte[] bArr = imgToByteArray(img);

下一个代码是我的vb.net代码,它向textbox1显示字节数组。我把它包括在内是因为有人要求它。

VB.net

Dim img As Image = Image.FromFile("C:\Users\-HELEMINNA-\Pictures\633a7f6c0d21cca1212a25d6867f2284.jpg")
Dim bArr As Byte() = imgToByteArray(img)

TextBox1.Text = String.Join("", Array.ConvertAll(bArr, Function(byteValue) byteValue.ToString))

2 个答案:

答案 0 :(得分:0)

最后一行的等效C#是:

TextBox1.Text = String.Join("", Array.ConvertAll(bArr, byteValue => byteValue.ToString()));

使用lambda表达式(byteValue => byteValue.ToString()

替换匿名函数

正如我在评论中提到的,这将打印字节的十进制值,因此0x00将打印为1,而0xFF将打印为255.

例如0x00, 0x20, 0xFF将打印为035255.这可能不是您想要的。某些字节组合可能会产生相同的打印文本。我建议使用hexadecimal,因为这会为每个字节打印2个字符,而不是每个字节打印1-3个字符。

例如,您可以像这样输出十六进制:

TextBox1.Text = BitConverter.ToString(bArr).Replace("-", "");

这会将上面的例子输出为0020FF。

答案 1 :(得分:-2)

你做这样的事情:

byte[] bytes = { 130, 200, 234, 23 }; // A byte array contains non-ASCII (or non-readable) characters

string s1 = Encoding.UTF8.GetString(bytes);

TextBox.Text = s1;