简体   繁体   中英

Converting from Image to Base64 returns Error

I am trying to convert an image into a base64 String so i can save in a column in my database. Now i see this method

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;
    }
}

And it gives me an Error in ASP.NET saying it does not contain the definition for Save , asks if i am missing an Assembly reference. And when i call it in the main method like this

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

of which the main code looks like this now :

        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);

It gives me another funny error there which looks like this

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

Please what exactly am I doing wrong. I am doing this on ASP.NET webform

The declaration of your method is getting clashed with System.Drawing.Image and System.Web.UI.Controls. Use it like

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

The last error tells you exactly what the issue is.

In the code file you have a reference to System.Web.UI.Web.Controls.Image , so in the method signature your reference to Image image is actually referring to that package.

You can test this by hovering over the reference and you should see the full path as above.

The reference that you actually need (and that contains the Save() method that you're trying to use is System.Drawing.Image .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM