Advertisement
kyrathasoft

jpg2base64 base64toJpg

Jun 1st, 2019
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.11 KB | None | 0 0
  1. using System;
  2. using System.IO;
  3. using System.Drawing;
  4.  
  5. namespace ConsoleApplication {
  6.  
  7.     class Program
  8.     {
  9.         static void Main(string[] args)
  10.         {
  11.             if(args.Length == 0){
  12.                
  13.                 if(File.Exists("pic.jpg")){ File.Delete("pic.jpg");}
  14.                 if(File.Exists("picstring.txt")){ File.Delete("picstring.txt");}
  15.                
  16.                 Console.WriteLine("\n I want to:\n");
  17.                 Console.WriteLine("\tConvert (J)PG to Base64 string");
  18.                 Console.WriteLine("\tConvert (B)ase64 string to JPG");
  19.                 ConsoleKeyInfo ki = Console.ReadKey();
  20.                
  21.                 if(ki.Key == ConsoleKey.J){
  22.                     Console.WriteLine("\n We'll try to convert JPG to Base64 string...");
  23.                     string converted = ImageToBase64(Image.FromFile(".\\temp\\pic.jpg"));
  24.                     using(StreamWriter sw = new StreamWriter("picstring.txt")){
  25.                         sw.Write(converted);
  26.                     }
  27.                 }else{
  28.                     if(ki.Key == ConsoleKey.B){                        
  29.                         Console.WriteLine("\n We'll try to convert Base64 string to JPG...");
  30.                         string data = string.Empty;
  31.                         using(StreamReader sr = new StreamReader(".\\temp\\picstring.txt")){
  32.                             data = sr.ReadToEnd();
  33.                         }
  34.                         Bitmap b = Base64ToBitmap(data);  
  35.                         b.Save("pic.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);                                                  
  36.                     }else{
  37.                         Console.WriteLine("\n You didn't select a valid choice.");
  38.                     }
  39.                 }
  40.             }
  41.         }  
  42.        
  43.         private static bool EndsWithImageFileFormatExtension(string filepath){
  44.             bool result = false;
  45.            
  46.             if(filepath.EndsWith(".png")){ result = true; }
  47.             if(filepath.EndsWith(".jpg")){ result = true; }
  48.             if(filepath.EndsWith(".jpeg")){ result = true; }
  49.             if(filepath.EndsWith(".bmp")){ result = true; }
  50.            
  51.             return result;
  52.         }
  53.        
  54.         private static string ImageToBase64(Image image)
  55.         {
  56.             try
  57.             {
  58.                 var imageStream = new MemoryStream();
  59.                 image.Save(imageStream, System.Drawing.Imaging.ImageFormat.Bmp);
  60.                 imageStream.Position = 0;
  61.                 var imageBytes = imageStream.ToArray();
  62.                 var ImageBase64 = Convert.ToBase64String(imageBytes);
  63.                 return ImageBase64;
  64.             }
  65.             catch
  66.             {
  67.                 return "Error converting image to base64!";
  68.             }
  69.         }
  70.        
  71.         private static Bitmap Base64ToBitmap(string ImageText)
  72.         {
  73.             Byte[] bitmapData = Convert.FromBase64String(FixBase64ForImage(ImageText));
  74.             System.IO.MemoryStream streamBitmap = new System.IO.MemoryStream(bitmapData);
  75.             Bitmap bitImage = new Bitmap((Bitmap)Image.FromStream(streamBitmap));
  76.             return bitImage;
  77.         }
  78.  
  79.         private static string FixBase64ForImage(string Image) {
  80.             System.Text.StringBuilder sbText = new System.Text.StringBuilder(Image,Image.Length);
  81.             sbText.Replace("\r\n", String.Empty); sbText.Replace(" ", String.Empty);
  82.             return sbText.ToString();
  83.         }      
  84.  
  85.     }
  86. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement