1. 基礎
1.1 將圖片的寬度和高度縮小一半
直接貼代碼了:
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>netcoreapp3.0</TargetFramework> </PropertyGroup> <ItemGroup> <PackageReference Include="SixLabors.ImageSharp" Version="1.0.0-beta0007" /> </ItemGroup> <ItemGroup> <None Update="foo.jpg"> <CopyToOutputDirectory>Always</CopyToOutputDirectory> </None> </ItemGroup> </Project>
using SixLabors.ImageSharp; using SixLabors.ImageSharp.Processing; using System; class Program { static void Main(string[] args) { // Open the file and detect the file type and decode it. // Our image is now in an uncompressed, file format agnostic, structure in-memory as a series of pixels. using (Image image = Image.Load("foo.jpg")) { // Resize the image in place and return it for chaining. // 'x' signifies the current image processing context. image.Mutate(x => x.Resize(image.Width / 2, image.Height / 2)); // The library automatically picks an encoder based on the file extensions then encodes and write the data to disk. image.Save("bar.jpg"); } // Dispose - releasing memory into a memory pool ready for the next image you wish to process. } }
1.2 以圖片原始的格式保存文件
using SixLabors.ImageSharp; using SixLabors.ImageSharp.Formats; using SixLabors.ImageSharp.PixelFormats; using SixLabors.ImageSharp.Processing; using System; using System.Linq; using System.Drawing.Text; class Program { static void Main(string[] args) { IImageFormat format; using (Image image = Image.Load("foo.jpg", out format)) { image.Mutate(x => x.Resize(image.Width / 2, image.Height / 2)); image.Save($"bar.{format.FileExtensions.First()}"); } } }
1.3
using SixLabors.ImageSharp; using SixLabors.ImageSharp.Formats; using SixLabors.ImageSharp.PixelFormats; using SixLabors.ImageSharp.Processing; using System; using System.Linq; using System.Drawing.Text; using SixLabors.ImageSharp.Formats.Jpeg; class Program { static void Main(string[] args) { IImageFormat format; using (Image image = Image.Load("foo.jpg", out format)) { image.Mutate(x => x.Resize(image.Width / 2, image.Height / 2)); JpegEncoder encoder = new JpegEncoder() { //標准中定義的0到100之間的質量值。默認值為75。 //通過減少Quality松散的信息,從而減小文件大小。 Quality = 40, //IgnoreMetadata = true }; image.Save($"bar.{format.FileExtensions.First()}", encoder); } } }
2. 進階
2.1
3. 高級
3.1
謝謝瀏覽!