繁体   English   中英

如何在C#中使用SimpleFilters将灰度应用于图像?

[英]How do I apply grayscale to my image with SimpleFilters in C#?

我正在Azure中创建一个函数,该函数会获取图像并调整其大小+将其设为灰度。 我目前正在使用此功能:

#r "System.Drawing"

using ImageResizer;
using ImageResizer.Plugins.SimpleFilters;
using System.Drawing;
using System.Drawing.Imaging;

public static void Run(Stream inputImage, string imageName, Stream 
resizedImage, TraceWriter log)
{
  log.Info($"C# Blob trigger function Processed blob\n Name:{imageName} \n 
  Size: {inputImage.Length} Bytes");

  var settings = new ImageResizer.ResizeSettings{
    MaxWidth = 400,
    Format = "png"
  };

  // Add the grayscale filter to the image
  inputImage.filters.Add(GrayscaleNTSC());

  ImageResizer.ImageBuilder.Current.Build(inputImage, resizedImage, settings);

}

我正在导入Plugins.SimpleFilters,但是我不知道如何在C#中使用它。 该项目站点提供了纯HTML示例。

您知道如何对图像进行灰度处理吗?

我收到以下错误:当前上下文中不存在名称'GrayscaleNTSC'

我正在使用的软件包是:

"dependencies": {
  "ImageResizer": "4.0.5",
  "ImageResizer.Plugins.SimpleFilters": "4.0.5"
}

根据您的描述,我假设您可以利用ImageResizer中的Managed API来实现您的目的。 这是我的测试,您可以参考它:

核心代码

//install the SimpleFilters plugin
ImageResizer.Configuration.Config.Current.Plugins.Install(new SimpleFilters());
var settings = new ResizeSettings("width=400&height=500&crop=auto&s.grayscale=true");
ImageBuilder.Current.Build($"{baseDir}/resources/image_01.jpg", $"{baseDir}/resources/image_01_01.jpg",
                    settings);

结果

  • 原始图片: https ://z.zr.io/ri/utah2.jpg

  • 修改后的图片:

在此处输入图片说明

此外,您可以参考托管API示例SimpleFilters插件以获取更多详细信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM