ImageSharp .NET Core跨平台圖形處理庫


ImageSharp 是支持.NET Core跨平台圖形處理庫,ImageSharp是ImageProcessor 的.NET Core跨平台實現。

ImageSharp 支持如下操作:

調整大小,裁剪,翻轉,旋轉,邊緣檢測等。

支持BMP,PNG,GIF,JPEG 編碼器。

EXIF 讀取和針對JPEG寫。

暫時還不支持Drawing ,即無法支持驗證碼及水印等操作。

GitHub:https://github.com/JimBobSquarePants/ImageSharp

目前版本為1.0.0-alpha7。 

新建項目

新建一個.NET Core 控制台應用程序。

添加引用

由於目前還是alpha版,還未放置在NuGet 中,是在MyGet上 https://www.myget.org/gallery/imagesharp。

在NuGet 程序包源中加入 ImageSharp 源。

ImageSharp 源地址:https://www.myget.org/F/imagesharp

 

然后在NuGet控制台執行命令:

Install-Package ImageSharp -Version 1.0.0-alpha7

提示:由於是預覽版更新較快,如版本無法引用請到https://www.myget.org/gallery/imagesharp 查看版本號,或更改project.json 使用最新版本。

編寫代碼

首先我們需要一張圖,將其放置於程序根目錄下命令為lena.jpg。

示例代碼如下:

        public static void Main(string[] args)
        {
            //讀取EXIF
            using (FileStream input = File.OpenRead("lena.jpg"))
            {
                Image image = new Image(input);
                var exif = image.ExifProfile.Values;
                foreach (var item in exif)
                {
                    Console.WriteLine(item.Tag+":"+item.Value);
                }
            }
            
            //縮放
            using (FileStream input = File.OpenRead("lena.jpg"))
            using (FileStream output = File.OpenWrite("lena2.jpg"))
            {
                Image image = new Image(input);
                image.Resize(image.Width / 2, image.Height / 2)
                     .Save(output);
            }
            //裁剪
            using (FileStream input = File.OpenRead("lena.jpg"))
            using (FileStream output = File.OpenWrite("lena3.jpg"))
            {
                Image image = new Image(input);
                image.Crop(image.Width / 2, image.Height / 2)
                     .Save(output);
            }
            //旋轉180°
            using (FileStream input = File.OpenRead("lena.jpg"))
            using (FileStream output = File.OpenWrite("lena4.jpg"))
            {
                Image image = new Image(input);
                image.Rotate(RotateType.Rotate180)
                     .Save(output);
            }

            //設置像素點方式簡單畫空白
            using (FileStream output = File.OpenWrite("lena5.jpg"))
            {
                Image image = new Image(100,200);
                Color[] colors = new Color[20000];
                for (int i = 0; i < 20000; i++)
                {
                    colors[i] = Color.White;
                }
                image.SetPixels(100, 200, colors);
                image.Save(output);
            }
            Console.ReadKey();
        }

運行程序會在程序根目錄下得到如下的圖

 

以上也就是 ImageSharp 的簡單使用,更多可以查看官方GitHub。

 

如果你覺得本文對你有幫助,請點擊“推薦”,謝謝。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM