Issue with Converting Multiple Base64-Encoded Images to Multi-Page TIFF in C#

95 Views Asked by At

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.

0

There are 0 best solutions below