私はbase64イメージを持っており、イメージに変換する必要があります。私はこのコードを使ってこれをやっています:C#Image to 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に変換する必要があります。イムこのコード使用:BASE64に再度画像を元base64Imageを変換した後
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);
}
を、それがquality.TheオリジナルBASE64画像は長さが1676であり、変換後の長さ1660を有している失います。
私はそれを比較する必要があるので、私は変換後に同じ画像が必要です。どのように品質を失うことなくそれを行うためのアイデア?
これらの16バイトが失われたのは、おそらく元のファイルに埋め込まれているだけです。イメージは同じに見えますか?別のイメージを使用してみてください。ファイルサイズはすべてのイメージで変更できますか? – Neil
イメージは同じように見えますが、16バイトのためイメージを比較できません。この問題は、私がテストしたすべてのイメージで発生しました。 – lukhol
これらの16バイトはほとんどデータではないので、画像が実際の品質を失うことはないようです(これは、使用されているエンコーディング/圧縮技術によって異なります) –