Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image processing Azure函数的图像大小调整器问题_Image Processing_Azure Storage Blobs_Imageresizer_Azure Functions - Fatal编程技术网

Image processing Azure函数的图像大小调整器问题

Image processing Azure函数的图像大小调整器问题,image-processing,azure-storage-blobs,imageresizer,azure-functions,Image Processing,Azure Storage Blobs,Imageresizer,Azure Functions,我一直在学习如何使用ImageResizer在Azure函数中监听blob存储触发器来调整图像大小的教程。但是,我收到以下错误消息: 错误CS0246:无法指定类型或命名空间名称“ImageResizer” 找到(是否缺少using指令或程序集引用?) 错误CS0246:无法指定类型或命名空间名称“ImageResizer” 找到(是否缺少using指令或程序集引用?) 错误CS0103:当前文件中不存在名称“ImageResizer” 上下文 My project.json配置的设置如下: {

我一直在学习如何使用ImageResizer在Azure函数中监听blob存储触发器来调整图像大小的教程。但是,我收到以下错误消息:

错误CS0246:无法指定类型或命名空间名称“ImageResizer” 找到(是否缺少using指令或程序集引用?)

错误CS0246:无法指定类型或命名空间名称“ImageResizer” 找到(是否缺少using指令或程序集引用?)

错误CS0103:当前文件中不存在名称“ImageResizer” 上下文

My project.json配置的设置如下:

{
"frameworks": {
  "net46":{
    "dependencies": {
      "ImageResizer": "4.0.5"
    }
  }
 }
}
我的运行代码是:

#r "System.Drawing"
#r "System.Web"

using ImageResizer;
using System.Drawing;
using System.Drawing.Imaging;

public static void Run(Stream inputImage, string imageName, Stream outputImage, 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 = "jpg"
    };

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

}

由于某种原因,您的nuget程序包还原似乎没有正常进行。使用与上述代码完全相同的代码,我能够成功编译此函数


您可以通过“触摸”您的project.json文件来强制重新进行包还原。只需进行编辑并保存,您就会看到恢复过程。在函数的“开发”页面上,选择“查看文件”,选择project.json文件并编辑/保存。在日志窗口中,您应该会看到恢复再次发生。

我最终设法解决了问题。问题是,我实际上调用了我的函数名“ImageReizer”,它在后端的应用程序服务计划中创建了一个同名文件夹。问题是,因为它与NugetPackage“ImageResizer”的名称相同,所以它会感到困惑,并在项目文件夹中查找,而不是在同名的包文件夹中查找


我用一个不同的名称(ImageManipulation)重新构建了函数,现在一切都正常了。

如果您在2.x版中使用Azure函数,则需要以不同的方式执行此操作

创建一个新文件,并将其命名为function.proj,而不是project.json。 以下是导入ImageResizer的示例:

<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
    <TargetFramework>netstandard2.0</TargetFramework>
</PropertyGroup>

<ItemGroup>
    <PackageReference Include="ImageResizer" Version="4.2.5" />
</ItemGroup>

netstandard2.0


您可以通过单击功能名称,在“概述”选项卡下选择“功能应用程序设置”,检查Azure Portal正在使用的运行时版本。运行时版本可以是~1或~2。

初始NuGet还原失败这一事实也让我相信某些设置不正确或导致该故障。对于ImageResizer示例,一个常见的问题是有一个与包名匹配的函数,这使得NuGet将其视为项目引用而不是包。我查看了一些日志,您可能会遇到这个问题。因此,除了遵循Mathew的说明外,请确保删除任何名为“ImageResizer”的函数,并使用其他名称创建函数。这将在将来得到解决。您现在也可以在Azure的可视化编辑器中单击“运行”来还原包。这是否已通过以下建议得到解决?没有,尽管我(侥幸)找到了问题的原因。我将回答下面的问题。你能分享一下你所关注的教程的链接吗?你最终都成功了吗?加文,这就是马修回答下面的评论所说的:)很高兴听到这一切都成功了。