GetEncoder(SaveFormat saveFormat) { SixLabors.ImageSharp.Formats.IImageEncoder enc = null; switch (saveFormat) { case SaveFormat.Png: enc = new SixLabors.ImageSharp.Formats.Png.PngEncoder(); break; case SaveFormat.Jpg: enc = new SixLabors.ImageSharp.Formats.Jpeg.JpegEncoder(); break; case SaveFormat.Gif: enc = new SixLabors.ImageSharp.Formats.Gif.GifEncoder(); break; case SaveFormat.Bmp: enc = new SixLabors.ImageSharp.Formats.Bmp.BmpEncoder(); break; default: enc = new SixLabors.ImageSharp.Formats.Png.PngEncoder(); break; } return(enc); } // End Function GetEncoder
public static void fooo(string fileName, SaveFormat saveFormat) { //var imagePath = Microsoft.AspNetCore.Http.PathString.FromUriComponent("/" + url); //var fileInfo = _fileProvider.GetFileInfo(imagePath); var fileInfo = new System.IO.FileInfo(fileName); //if (!fileInfo.Exists) { return NotFound(); } int width = 100; int height = 100; byte[] data = null; using (MemoryStream outputStream = new MemoryStream()) { using (System.IO.Stream inputStream = fileInfo.OpenRead()) { using (Image <Rgba32> image = Image.Load(inputStream)) { image.Mutate( delegate(IImageProcessingContext <Rgba32> mutant) { mutant.Resize(image.Width / 2, image.Height / 2); } ); IImageEncoder enc = null; if (saveFormat == SaveFormat.Jpg) { enc = new SixLabors.ImageSharp.Formats.Jpeg.JpegEncoder(); } else if (saveFormat == SaveFormat.Png) { enc = new SixLabors.ImageSharp.Formats.Png.PngEncoder(); } else if (saveFormat == SaveFormat.Png) { enc = new SixLabors.ImageSharp.Formats.Gif.GifEncoder(); } else if (saveFormat == SaveFormat.Bmp) { enc = new SixLabors.ImageSharp.Formats.Bmp.BmpEncoder(); } image.Save(outputStream, enc); } // End Using image data = outputStream.ToArray(); } // End Using inputStream } // End Using outputStream } // End Sub fooo
public static byte[] ResizeImage(string fileName, SaveFormat saveFormat) { byte[] data = null; using (MemoryStream outputStream = new MemoryStream()) { using (Image <Rgba32> image = Image.Load(fileName)) { image.Mutate( delegate(IImageProcessingContext <Rgba32> mutant) { mutant.Resize(image.Width / 22, image.Height / 22); } ); IImageEncoder enc = null; if (saveFormat == SaveFormat.Jpg) { enc = new SixLabors.ImageSharp.Formats.Jpeg.JpegEncoder(); } else if (saveFormat == SaveFormat.Png) { enc = new SixLabors.ImageSharp.Formats.Png.PngEncoder(); } else if (saveFormat == SaveFormat.GIF) { enc = new SixLabors.ImageSharp.Formats.Gif.GifEncoder(); } else if (saveFormat == SaveFormat.Bmp) { enc = new SixLabors.ImageSharp.Formats.Bmp.BmpEncoder(); } image.Save(@"D:\myfileformat." + saveFormat.ToString().ToLowerInvariant(), enc); image.SaveAsJpeg(outputStream); } // End Using image data = outputStream.ToArray(); } // End Using outputStream System.IO.File.WriteAllBytes(@"d:\myfile.jpg", data); return(data); } // End Sub ResizeImage
public bool SaveGif(Image <Rgba32> image, string filename, int attempts) { try { string fname = filename; if (attempts != 0) { fname += "(" + attempts + ")"; } var outputStream = File.Open(fname + ".gif", FileMode.OpenOrCreate); var gifEncoder = new SixLabors.ImageSharp.Formats.Gif.GifEncoder(); image.Save(outputStream, gifEncoder); outputStream.Close(); return(true); } catch (IOException e) { System.Console.WriteLine("Image saving failed."); System.Console.WriteLine(e); return(false); } }
public void Save(System.IO.Stream strm, System.Drawing.Imaging.ImageFormat format) { SixLabors.ImageSharp.Formats.IImageEncoder enc = null; if (format == System.Drawing.Imaging.ImageFormat.Jpeg) { enc = new SixLabors.ImageSharp.Formats.Jpeg.JpegEncoder(); } else if (format == System.Drawing.Imaging.ImageFormat.Png) { enc = new SixLabors.ImageSharp.Formats.Png.PngEncoder(); } else if (format == System.Drawing.Imaging.ImageFormat.Gif) { enc = new SixLabors.ImageSharp.Formats.Gif.GifEncoder(); } else if (format == System.Drawing.Imaging.ImageFormat.Bmp) { enc = new SixLabors.ImageSharp.Formats.Bmp.BmpEncoder(); } this.m_image.Save(strm, enc); }
public static MemoryStream Mark(MemoryStream inStream, string text, string fontPath) { text = $"···甘井子区重点车辆管理系统·{text}···"; //首先先判断该图片是否是 gif动画,如果为gif动画不对图片进行改动 using (Image <Rgba32> img = Image.Load(inStream.ToArray(), out IImageFormat format)) { FontCollection fonts = new FontCollection(); FontFamily fontFamily = fonts.Install(fontPath); if (fontFamily == null) { SystemFonts.TryFind("DejaVu Sans", out fontFamily); } if (fontFamily == null) { SystemFonts.TryFind("Book", out fontFamily); } if (fontFamily == null) { SystemFonts.TryFind("DengXian", out fontFamily); } if (fontFamily == null) { SystemFonts.TryFind("SimSun", out fontFamily); } if (fontFamily == null) { SystemFonts.TryFind("Arial", out fontFamily); } if (fontFamily == null) { fontFamily = SystemFonts.Families.First(t => t.Name.Contains("Hei") || t.Name.Contains("黑")); } if (fontFamily == null) { fontFamily = SystemFonts.Families.First(); } var font = fontFamily.CreateFont(14f); using (var img2 = img.Clone(ctx => ctx.ApplyScalingWaterMark(font, text, Rgba32.FromHex("ffffffdd"), 20, false))) { IImageEncoder encoder = null; if (format == ImageFormats.Bmp) { encoder = new SixLabors.ImageSharp.Formats.Bmp.BmpEncoder(); } else if (format == ImageFormats.Jpeg) { encoder = new SixLabors.ImageSharp.Formats.Jpeg.JpegEncoder(); } else if (format == ImageFormats.Png) { encoder = new SixLabors.ImageSharp.Formats.Png.PngEncoder(); } else if (format == ImageFormats.Gif) { encoder = new SixLabors.ImageSharp.Formats.Gif.GifEncoder(); } MemoryStream outStream = new MemoryStream(); img2.Save(outStream, encoder); outStream.Close(); return(outStream); } } }