✅ Image from dataurl
I have dataurl with image and i need to get it to some reasonable image object in c#, so i can resize it and get bytes from the resized image. I was playing with skiasharp bitmap, but i couldn't figure it out.
using System;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
namespace ImageConversionToHelpBinto86
{
class Program
{
static void Main(string[] args)
{
string dataUrl = "";
string base64 = dataUrl.Split(',')[1];
byte[] imageBytes = Convert.FromBase64String(base64);
using (MemoryStream ms = new MemoryStream(imageBytes))
{
Image image = Image.FromStream(ms);
Bitmap resizedImage = new Bitmap(image, new Size(100, 100));
byte[] resizedImageBytes;
using (MemoryStream resizedMs = new MemoryStream())
{
resizedImage.Save(resizedMs, ImageFormat.Jpeg);
resizedImageBytes = resizedMs.ToArray();
}
}
}
}
}SKBitmap.Decodeusing System;
using System.IO;
using SkiaSharp;
namespace ImageConversion
{
public class Program
{
public static byte[] ConvertDataUrlToImageBytes(string dataUrl)
{
string base64 = dataUrl.Split(',')[1];
byte[] imageBytes = Convert.FromBase64String(base64);
using (MemoryStream ms = new MemoryStream(imageBytes))
{
using (SKManagedStream skStream = new SKManagedStream(ms))
using (SKBitmap bitmap = SKBitmap.Decode(skStream))
{
using (SKBitmap resizedBitmap = new SKBitmap(100, 100))
using (SKCanvas canvas = new SKCanvas(resizedBitmap))
{
canvas.DrawBitmap(bitmap, new SKRect(0, 0, 100, 100), BitmapStretch.Uniform);
using (MemoryStream resizedMs = new MemoryStream())
{
SKImage.FromBitmap(resizedBitmap).Save(resizedMs, SKEncodedImageFormat.Jpeg);
return resizedMs.ToArray();
}
}
}
}
}
}
}using System;
using System.IO;
using SkiaSharp;
namespace ImageConversion
{
public class Program
{
public static byte[] ConvertDataUrlToImageBytes(string dataUrl)
{
string base64 = dataUrl.Split(',')[1];
byte[] imageBytes = Convert.FromBase64String(base64);
using (MemoryStream ms = new MemoryStream(imageBytes))
{
using (SKManagedStream skStream = new SKManagedStream(ms))
using (SKBitmap bitmap = SKBitmap.Decode(skStream))
{
using (SKBitmap resizedBitmap = new SKBitmap(100, 100))
using (SKCanvas canvas = new SKCanvas(resizedBitmap))
{
canvas.DrawBitmap(bitmap, new SKRect(0, 0, 100, 100), BitmapStretch.Uniform);
using (MemoryStream resizedMs = new MemoryStream())
{
SKData d = SKImage.FromBitmap(resizedBitmap).Encode(SKEncodedImageFormat.Png, 100);
d.SaveTo(resizedMs);
return resizedMs.ToArray();
}
}
}
}
}
}
}SKData d = SKImage.FromBitmap(bitmap).Encode(SKEncodedImageFormat.Png, 100);
d.SaveTo(resizedMs);