这与测试仪器有关,但需要在C#代码中提供更多帮助。 我在这里做了更多关于我的问题的解释。 我发送命令到仪器,我只是从仪器接收数据。 收到的数据是真实格式(二进制),我只是输入字符串变量。 在这里我捕获了字符串中的内容..
http://i.stack.imgur.com/UcYqV.png
然后我想要做的是我希望这个字符串转换字节数组。因为我的目标是在我的电脑上制作png文件。仪器手册说这个返回的数据是gif格式但返回真实类型。 我相信问题点是当我转换为字节数组时,有问题... 有没有人有这种体验,?????
/// below is just send command to instrument that i want " Returns an image of the display in .gif format "
my6705B.WriteString("hcop:sdump:data?", true);
string image_format = my6705B.ReadString();
/// what's inside string image_format ??![i attached screenshot png file. this is what i received from instrument. (manual said this is Returns an image of the display in .gif format)][1] ![png file][2]
http://i.stack.imgur.com/UcYqV.png
/// now here i think i did something wrong,
/// the goal is i want change this return data to gif or png or image file.
/// any solution is ok for me
/// i just try that change this data to byte array and then try to change image file.
/// i think some error here because my code success to convert byte array then create image,,, error
//// i believe that i did something wrong in convert byte array.....
System.Text.UnicodeEncoding encode = new System.Text.UnicodeEncoding();
byte[] byte_array22 = encode.GetBytes(image_format);
MemoryStream ms4 = new MemoryStream(byte_array22);
Image image = Image.FromStream(ms4); //// error point
image.Save(@"C:\Users\Administrator\Desktop\imageTest.png");
我相信我的解释是在评论中。 让我再解释一下,我的目标是将gif数据转换为图像文件。 instrument给我们返回.gif格式的显示图像。 我收到这个数据到字符串数组。 <我不知道这是否正确但是现在我把它放到字符串数组>那么我只想用这个gif数据png或jpg文件。
请咨询,。
Joseph Choi
答案 0 :(得分:1)
请尝试使用ImageFormat
image.Save(@"C:\Users\Administrator\Desktop\imageTest.png", System.Drawing.Imaging.ImageFormat.Png);
<强>更新强>
byte[] byte_array22 = Encoding.Unicode.GetBytes(image_format);
MemoryStream ms4 = new MemoryStream(byte_array22);
Image image = Image.FromStream(ms4, true, true);
image.Save(@"C:\Users\Administrator\Desktop\imageTest.png",System.Drawing.Imaging.ImageFormat.Png);
答案 1 :(得分:0)
嗯......这里有两种方法可以将图像转换为Base64格式(字符串),然后返回。
private string ImageToBase64(Image image, System.Drawing.Imaging.ImageFormat format)
{
using (MemoryStream ms = new MemoryStream())
{
// Convert Image to byte[]
image.Save(ms, format);
byte[] imageBytes = ms.ToArray();
// Convert byte[] to Base64 String
string base64String = Convert.ToBase64String(imageBytes);
return base64String;
}
}
private Image Base64ToImage(string base64String)
{
// Convert Base64 String to byte[]
byte[] imageBytes = Convert.FromBase64String(base64String);
using (var ms = new MemoryStream(imageBytes, 0, imageBytes.Length))
{
// Convert byte[] to Image
ms.Write(imageBytes, 0, imageBytes.Length);
Image image = Image.FromStream(ms, true);
return image;
}
}
您可以使用它们并与它们一起玩,看看它们是否适合您。
我不确定拍摄图像只是将其转换为字符串数组会对你有所帮助。