2012-01-13 3 views
0

Я нашел следующий код, но не смог понять, что мне нужно пройти через ImageToBase64(Image image, System.Drawing.Imaging.ImageFormat format).C# Загрузка изображения с использованием FileUpload

Мне нужен инструмент FileUpload, чтобы загрузить изображение в систему и передать его ImageToBase64

Для справки моего кода

public string ImageToBase64(Image image, System.Drawing.Imaging.ImageFormat format) 
    { 
     using (MemoryStream ms = new MemoryStream()) 
     { 
      image.Save(ms, format); 
      byte[] imageBytes = ms.ToArray(); 
      string base64String = Convert.ToBase64String(imageBytes); 
      return base64String; 
     } 
    } 

Я пытался делать ImageToBase64(FileUpload.FileBytes, "Image/PNG") Но я получаю ошибку синтаксиса. Каков правильный синтаксис, который я могу использовать для этого кода?

ответ

6

Поскольку функция принимает аргумент типа Image и ImageFormat, и вы передаете байты [] и строку.

Вам не нужно тип пантомимы, и вам нужно будет только

var base64String = Convert.ToBase64String(FileUpload.FileBytes); 
+0

Большое спасибо! и есть ли какие-либо такие простые методы для преобразования обратно 'Base64String' в' Image' назад? –

+0

Convert.FromBase64CharArray() должен быть достаточным. – jishi

+0

Извините, Jishi Я не мог понять, как использовать 'Convert.FromBase64CharArray()' для преобразования back_ base64String' обратно в изображение. –

0

В качестве метода подписи государств, второй параметр имеет тип ImageFormat. Это перечисление, так что вы будете использовать его так:

/// create or load a bitmap 
var bitmap = new Bitmap(.....); 

var base64string = ImageToBase64(bitmap,ImageFormat.Bmp); 

В этом случае параметр ImageFormat, по-видимому используется, чтобы сообщить Save() метод, какой формат вы хотите данные в формате (JPEG, PNG, bmp и т. д.). Тип MIME недостаточен и на самом деле не принадлежит этому контексту, поскольку этот метод не является специфичным для Интернета.

+0

Где я могу использовать FileUpload здесь? и что я должен писать в 'new Bitmap (....);'? –

+0

@Madcoder Я предположил, что вы пытались преобразовать изображение, которое у вас уже было, в строку с базой 64, так как это метод, который вы опубликовали. Если у вас уже есть «FileUpload», который вы получили из формы POST (возможно, в ASP.NET), вам вообще не нужно проходить через базовую 64-кодировку. Что именно ты пытаешься сделать?? –

Смежные вопросы