normally this code works, but when we create a project with this code and then change the language option from windows region and language settings, the image cannot be loaded.
In short, the image save feature gives an error when the windows language option is changed
ImageToBase64(Image image)
image.Save(m,image.RawFormat);
Base64ToImage(String base64String)
image = System.Drawing.Image.FromStream(ms, true);
What I have tried:
this change setting is problem load image
Decimal symbol and Dijit grouping symbol change after load image error
public static String ImageToBase64(Image image)
{
if (image == null)
{
return "";
}
using (MemoryStream m = new MemoryStream())
{
image.Save(m,image.RawFormat);
byte[] imageBytes = m.ToArray();
string base64String;
if (int.Parse(CSabit.filevers) > 1)
base64String = ByteArrayToString(imageBytes);
else
base64String= Convert.ToBase64String(imageBytes,Base64FormattingOptions.InsertLineBreaks);
return base64String;
}
}
public static Image Base64ToImage(String base64String)
{
string adr = Path.GetDirectoryName(FrmMain.ProjeAdresi);
byte[] imageBytes;
if (base64String == "")
return null;
if (int.Parse(CSabit.filevers) > 1)
{
imageBytes = StringToByteArray(base64String);
}
else
{
if (DebugMode == "2")
{
if (!File.Exists(adr + @"\resim\" + base64String)) return null;
imageBytes = File.ReadAllBytes(adr + @"\resim\" + base64String);
}
else
{
imageBytes = Convert.FromBase64String(base64String);
}
}
MemoryStream ms = new MemoryStream(imageBytes, 0, imageBytes.Length);
ms.Write(imageBytes, 0, imageBytes.Length);
System.Drawing.Image image;
try
{
image = System.Drawing.Image.FromStream(ms, true);
}
catch
{
image = Image.FromFile("imr.png");
}
return image;
}