private string CreateImage(string message, double size) { var col = size * 0.575; var row = size; var lineArray = message.Split('\n'); var width = (lineArray.Select(_ => _.Length).Max() * col); var height = lineArray.Length * row; var bufferCanvas = new HTMLCanvasElement() { Width = _resolution.Clamp(width), Height = _resolution.Clamp(height) }; var bufferContext = bufferCanvas.GetContext(CanvasContext2DType.CanvasRenderingContext2D); double colAmount = 0; double rowAmount = 0; foreach (var line in lineArray) { foreach (var letter in line) { DrawLetter(letter, size, colAmount, rowAmount, bufferContext); colAmount += col; } rowAmount += row; colAmount = 0; } return(bufferCanvas.ToDataURL()); }
public WebImage(HTMLCanvasElement canvas, PointF center) { HTMLImageElement image = new HTMLImageElement(); image.Src = canvas.ToDataURL(); Image = image; Width = (int)canvas.Width; Height = (int)canvas.Height; Center = center ?? new PointF((Width / 2f), Height / 2f); Image = image; }
public static string ToDataUrl(this ImageData img) { HTMLCanvasElement tmp = new HTMLCanvasElement(); ((CanvasRenderingContext2D)tmp.GetContext("2d")).PutImageData(img, 0, 0); return tmp.ToDataURL(); }