• 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。

    如果你觉得本文对你有帮助,请点击“推荐”,谢谢。

  • 相关阅读:
    Java中的枚举与values()方法
    为什么要使用双亲委派机制?
    java中finalize()方法
    jdk中rt.jar的作用
    IDEA查看maven依赖树,找出冲突jar包,以及 exclusion 冲突的包
    Linux 环境下SQLPLUS 回退键无法使用处理方法
    Hive字段注释会显示成from deserializer
    LinkedList类的poll、pop等方法
    static代码块执行顺序
    机器学习--线性回归
  • 原文地址:https://www.cnblogs.com/linezero/p/ImageSharp.html
Copyright © 2020-2023  润新知