Как преобразовать растровое изображение 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());
Но в этом случае пустой вывод генерируется. Кто-нибудь может подсказать, пожалуйста, где проблема.