/* Tesses.ProfileIcon A profile Icon Generator Copyright (C) 2023 Mike Nolan This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ using Tesses.WebServer; using Tesses.ProfileIcon; using SixLabors.ImageSharp; var pic= new ProfileIconCreator() .WithDefaultColors() .WithDefaultFont() .WithHashedProfileIconColorPicker(); RouteServer server = new RouteServer(); server.Add("/",async ctx=>await ctx.SendFileAsync("index.html")); server.Add("/image.png",async(ctx)=>{ if(!ctx.QueryParams.TryGetFirst("name",out var name)) { name="Your Name"; } if(!ctx.QueryParams.TryGetFirst("custom",out var custom)) { custom="false"; } using(var icon= pic.Generate(name,custom=="true")) { using(var strm = new MemoryStream()) { icon.SaveAsPng(strm); strm.Position=0; await ctx.SendStreamAsync(strm,"image/png"); } } }); server.StartServer();