Как преобразовать растровое изображение imageData в формат SVG или EPS в C#

У меня есть html5 canvas imageData и я хочу сохранить как векторное изображение (esp или svg) на сервере. Я пытался использовать библиотеки Magick.NET и SVG Rendering Engine, но не смог найти какой-либо способ для преобразования этого imageData в векторный формат изображения. Можете ли вы поделиться кодом для этой цели. Вот мой код

public static string UploadImage(string imageData, string userEmail, int quantity)
{
    string completePath = @"~\user-images\file.svg";
    byte[] byteArray = Convert.FromBase64String(imageData);

    //How can i convert this byteArray into vector image array so that i can save it as vector image on spcified path?

    using (FileStream fs = new FileStream(HttpContext.Current.Server.MapPath(completePath), FileMode.Create))
    {

        using (BinaryWriter bw = new BinaryWriter(fs))
        {

            byte[] data = Convert.FromBase64String(imageData);

            bw.Write(data);

            bw.Close();
        }

    }

}

РЕДАКТИРОВАТЬ: я узнал от кого-то, что после создания растровых imageData он не может быть преобразован в векторное изображение. Поэтому вопрос заключается в том, как я могу сохранить HTML-холст как векторное изображение на сервере, не получая растровое изображение.

Итак, на данный момент я попытался использовать библиотеку ткани для генерации изображения SVG с помощью метода ткани.toSVG(). Вот код:

var fCanvas = new fabric.Image('c'); 
var imageurl = myCanvas.toDataURL("image/png"); // this is the origional html canvas that I used to draw images.

fabric.Image.fromURL(imageurl, function (img) {
    img.scaleToWidth(fCanvas.width);
    fCanvas.add(img);
    fCanvas.renderAll();

}, { crossOrigin: 'anonymous' });
//fCanvas.deactivateAll().renderAll();
window.open('data:image/svg+xml;utf8,' + fCanvas.toSVG());

Но в этом случае пустой вывод генерируется. Кто-нибудь может подсказать, пожалуйста, где проблема.

0 ответов

Другие вопросы по тегам