Преобразование пути изображения в строку base64

Как преобразовать изображение в строку base64 в C #?

Например, у меня есть путь к изображению C:/image/1.gif и хотел бы получить data:image/gif;base64,/9j/4AAQSkZJRgABAgEAYABgAAD.. вернулся.

Попробуй это

 using (Image image = Image.FromFile(Path)) { using (MemoryStream m = new MemoryStream()) { image.Save(m, image.RawFormat); byte[] imageBytes = m.ToArray(); // Convert byte[] to Base64 String string base64String = Convert.ToBase64String(imageBytes); return base64String; } } 

Получите представление байтового массива ( byte[] ) изображения, затем используйте Convert.ToBase64String() , st. как это:

 byte[] imageArray = System.IO.File.ReadAllBytes(@"image file path"); string base64ImageRepresentation = Convert.ToBase64String(imageArray); 

Чтобы преобразовать изображение base4 в System.Drawing.Image:

 var img = Image.FromStream(new MemoryStream(Convert.FromBase64String(base64String))); 

Поскольку большинство из нас, как oneliners:

 Convert.ToBase64String(File.ReadAllBytes(imageFilepath)); 

Если вам это нужно как массив байтов Base64:

 Encoding.ASCII.GetBytes(Convert.ToBase64String(File.ReadAllBytes(imageFilepath))); 

Это class, который я написал для этой цели:

 public class Base64Image { public static Base64Image Parse(string base64Content) { if (string.IsNullOrEmpty(base64Content)) { throw new ArgumentNullException(nameof(base64Content)); } int indexOfSemiColon = base64Content.IndexOf(";", StringComparison.OrdinalIgnoreCase); string dataLabel = base64Content.Substring(0, indexOfSemiColon); string contentType = dataLabel.Split(':').Last(); var startIndex = base64Content.IndexOf("base64,", StringComparison.OrdinalIgnoreCase) + 7; var fileContents = base64Content.Substring(startIndex); var bytes = Convert.FromBase64String(fileContents); return new Base64Image { ContentType = contentType, FileContents = bytes }; } public string ContentType { get; set; } public byte[] FileContents { get; set; } public override string ToString() { return $"data:{ContentType};base64,{Convert.ToBase64String(FileContents)}"; } } var base64Img = new Base64Image { FileContents = File.ReadAllBytes("Path to image"), ContentType="image/png" }; string base64EncodedImg = base64Img.ToString(); 

Вы можете использовать путь Server.Map для предоставления относительного пути, а затем вы можете либо создать изображение с использованием преобразования base64 либо просто добавить строку base64 в image src .

 byte[] imageArray = System.IO.File.ReadAllBytes(Server.MapPath("~/Images/Upload_Image.png")); string base64ImageRepresentation = Convert.ToBase64String(imageArray); 

Таким образом, это проще, когда вы передаете изображение, а затем передаете формат.

 private static string ImageToBase64(Image image) { try { var imageStream = new MemoryStream(); image.Save(imageStream, System.Drawing.Imaging.ImageFormat.Bmp); imageStream.Position = 0; var imageBytes = imageStream.ToArray(); var ImageBase64 = Convert.ToBase64String(imageBytes); return ImageBase64; } catch (Exception ex) { return "Error converting image to base64!"; } } 

Вы можете преобразовать его так

  string test = @"C:/image/1.gif"; byte[] bytes = System.Text.ASCIIEncoding.ASCII.GetBytes(test); string base64String = System.Convert.ToBase64String(bytes); Console.WriteLine("Base 64 string: " + base64String); 

Вывод

  QzovaW1hZ2UvMS5naWY= 

Что-то вроде того

  Function imgTo64(ByVal thePath As String) As String Dim img As System.Drawing.Image = System.Drawing.Image.FromFile(thePath) Dim m As IO.MemoryStream = New IO.MemoryStream() img.Save(m, img.RawFormat) Dim imageBytes As Byte() = m.ToArray img.Dispose() Dim str64 = Convert.ToBase64String(imageBytes) Return str64 End Function 
  • Как я могу считывать значения пикселей изображения как RGB в 2d-массив?
  • Водяные знаки с PDFBox
  • Java: Как создать фильм из массива изображений?
  • Не удается найти утечку памяти
  • Почему изображение Tkinter не отображается, если оно создано в функции?
  • Проверить, является ли файл файлом изображения
  • Изменение размера изображения в asp.net без потери качества изображения
  • VirtualBox: как я могу добавить (смонтировать) файл образа ISO из командной строки?
  • Изображения в paintComponent отображаются только после изменения размера windows
  • Как resize JLabel ImageIcon?
  • отображать огромные изображения в Android
  • Давайте будем гением компьютера.