Преобразование из изображения в Base64 возвращает ошибку - PullRequest
0 голосов
/ 18 января 2019

Я пытаюсь преобразовать изображение в строку base64, чтобы сохранить ее в столбце в моей базе данных. Теперь я вижу этот метод

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

        // Convert byte[] to Base64 String
        string base64String = Convert.ToBase64String(imageBytes);
        return base64String;
    }
}

И в ASP.NET выдается сообщение об ошибке, в котором говорится, что в нем нет определения «Сохранить», и спрашивает, отсутствует ли ссылка на сборку. И когда я вызываю его в основном методе, как это

string base64ImageString = ImageToBase64(img, System.Drawing.Imaging.ImageFormat.Jpeg);

из которых основной код выглядит следующим образом:

        sigObj.SetImageFileFormat(0);
        sigObj.SetImageXSize(500);
        sigObj.SetImageYSize(150);
        sigObj.SetImagePenWidth(8);
        sigObj.SetJustifyX(5);
        sigObj.SetJustifyY(5);
        sigObj.SetJustifyMode(5);
        System.Drawing.Image img = sigObj.GetSigImage();
        base64ImageString = ImageToBase64(img, System.Drawing.Imaging.ImageFormat.Jpeg);

Это дает мне еще одну забавную ошибку, которая выглядит следующим образом

Cannot convert from System.Drawing.Image to System.Web.UI.Web.Controls.Image

Пожалуйста, что именно я делаю не так. Я делаю это на веб-форме ASP.NET

Ответы [ 2 ]

0 голосов
/ 18 января 2019

Последняя ошибка говорит вам точно, в чем проблема.

В файле кода у вас есть ссылка на System.Web.UI.Web.Controls.Image, поэтому в сигнатуре метода ваша ссылка на Image image фактически ссылается на этот пакет.

Вы можете проверить это, наведя курсор на ссылку, и вы увидите полный путь, как указано выше.

Ссылка, которая вам действительно нужна (и содержит метод Save(), который вы пытаетесь использовать, это System.Drawing.Image.

0 голосов
/ 18 января 2019

Объявление вашего метода конфликтует с System.Drawing.Image и System.Web.UI.Controls. Используйте это как

public string ImageToBase64(System.Drawing.Image image,System.Drawing.Imaging.ImageFormat format)
...