我有一个base64图像,我必须将其转换成图像。我这样做使用此代码:C#图像base64
public static Image ConvertBase64StringToImage(string imageBase64String)
{
var imageBytes = Convert.FromBase64String(imageBase64String);
var imageStream = new MemoryStream(imageBytes, 0, imageBytes.Length);
imageStream.Write(imageBytes, 0, imageBytes.Length);
var image = Image.FromStream(imageStream, true);
return image;
}
然后我必须将此图像转换为base64再次。使用im此代码:
public static string ConvertImageToBase64String(Image image)
{
var imageStream = new MemoryStream();
image.Save(imageStream, ImageFormat.Png);
imageStream.Position = 0;
var imageBytes = imageStream.ToArray();
return Convert.ToBase64String(imageBytes);
}
原始base64Image转换成图像,并再次为base64后,它失去quality.The原始的base64图像的长度为1676和转换后它的长度具有1660。
转换后我需要相同的图像,因为我必须对它进行比较。任何想法如何做到不失质量?
这16个字节丢失可能只是原始文件中的填充。图像看起来是否一样?尝试使用不同的图像,所有图像上的文件大小是否更改,或者只有那一个。 – Neil
图像看起来相同,但由于这16个字节,我无法比较这些图像。这个问题发生在我测试的每个图像上。 – lukhol
这16个字节是如此少的数据,似乎不太可能的图像失去了实际的质量(也取决于所使用的编码/压缩技术) –