.Net Core 图片原尺寸压缩

2022-11-23  本文已影响0人  Rinaloving

1. 控件

using SixLabors.ImageSharp.Formats;
using SixLabors.ImageSharp.Formats.Jpeg;
using SixLabors.ImageSharp.Processing;

2. 代码


                          if (File.Exists(fileItem))
                          {
                                    byte[] fileByte = File.ReadAllBytes(fileItem);
                                    if (2097152 <= fileByte.Length)
                                    {
                                        string newFile = null;
                                        IImageFormat format;
                                        using (SixLabors.ImageSharp.Image image = SixLabors.ImageSharp.Image.Load(fileItem, out format))
                                        {
                                            newFile = string.Format("{0:yyyyMMddHHmmssfff}", DateTime.Now);
                                            image.Mutate(x => x.Resize(image.Width, image.Height));
                                            JpegEncoder encoder = new JpegEncoder()
                                            {
                                                //标准中定义的0到100之间的质量值。默认值为75。
                                                //通过减少Quality松散的信息,从而减小文件大小。
                                                Quality = 50,
                                                //IgnoreMetadata = true
                                            };
                                            newFile = $"{newFile}{Path.GetExtension(fileItem)}";
                                            using (FileStream input = File.OpenWrite($"{filePath}{newFile}"))
                                            {
                                                image.Save(input, encoder);
                                                input.Dispose();
                                            }
                                            image.Dispose();
                                        }
                                        File.Copy($"{filePath}{newFile}", fileItem, true);
                                        File.Delete($"{filePath}{newFile}");
                                    }

上一篇 下一篇

猜你喜欢

热点阅读