I'm facing an issue when attempting to convert multiple base64-encoded images into a multi-page TIFF format in C# using the Magick.NET library. The code seems to be working correctly, but I encounter an "invalid base64" issue when attempting to return the resulting base64 string to the front end.
public string ConvertToTIFF(ConvertFiles convertFiles)
{
try
{
using (MagickImageCollection images = new MagickImageCollection())
{
List<string> listFilebase64 = convertFiles.ListFilebase64;
foreach (string base64 in listFilebase64)
{
byte[] newBytes = Convert.FromBase64String(base64.Replace("data:image/png;base64,", ""));
MagickFormat format = convertFiles.Extension.ToLower() == "tiff" ? MagickFormat.Tiff : MagickFormat.Tif;
MagickImage image = new MagickImage(newBytes);
image.Format = format;
images.Add(image);
}
using (MemoryStream byteStream = new MemoryStream())
{
MagickFormat format = convertFiles.Extension.ToLower() == "tiff" ? MagickFormat.Tiff : MagickFormat.Tif;
images.Write(byteStream, format);
byteStream.Position = 0;
string base64Result = Convert.ToBase64String(byteStream.GetBuffer(), 0, (int)byteStream.Length);
return base64Result;
}
}
}
catch (Exception ex)
{
Console.WriteLine($"Error: {ex.Message}");
return null;
}
}
I also use 'ToBase64()' from MagickImageCollection but nothing change.