Как преобразовать изображение в строку base64 в С#?
Например, у меня есть путь к изображению C:/image/1.gif и хотел бы вернуть data:image/gif;base64,/9j/4AAQSkZJRgABAgEAYABgAAD...
Как преобразовать изображение в строку base64 в С#?
Например, у меня есть путь к изображению 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)));
		Это класс, который я написал для этой цели:
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);
		Вы можете преобразовать его так:
  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=