Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.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
C# 在Azure函数中按查询字符串调整图像大小_C#_Azure_Image Processing_Azure Functions_Image Resizing - Fatal编程技术网

C# 在Azure函数中按查询字符串调整图像大小

C# 在Azure函数中按查询字符串调整图像大小,c#,azure,image-processing,azure-functions,image-resizing,C#,Azure,Image Processing,Azure Functions,Image Resizing,我正在尝试使用Azure函数通过URL方案调整图像大小,使用查询字符串返回调整大小的图像。我看过一些图书馆。到目前为止,最有希望的解决方案似乎是具有像ImageSharp.Web这样的中间件的解决方案 不幸的是,我只能找到关于如何设置ASP.NET或WebAPI的信息,类似于这里的问题。我可以自己编写一些代码来处理查询解析,但我希望已经有了一些东西,所以我不需要自己编写 是否有一个库可以让我通过查询字符串调整图像大小,并在Azure函数v2/v3中运行?Azure函数带有Http触发器和SixL

我正在尝试使用Azure函数通过URL方案调整图像大小,使用查询字符串返回调整大小的图像。我看过一些图书馆。到目前为止,最有希望的解决方案似乎是具有像
ImageSharp.Web
这样的中间件的解决方案

不幸的是,我只能找到关于如何设置ASP.NET或WebAPI的信息,类似于这里的问题。我可以自己编写一些代码来处理查询解析,但我希望已经有了一些东西,所以我不需要自己编写


是否有一个库可以让我通过查询字符串调整图像大小,并在Azure函数v2/v3中运行?

Azure函数带有
Http触发器和
SixLabors ImageSharp
这样做很好

首先,您必须实现DownloadImageAsync以从url下载文件,从:


使用一些在线工具进行检查,例如

您的Azure函数是Http触发器,它可以获取输入(URL、大小)和base64图像编码的响应?是的,这正是我想要的。对该服务的调用将来自浏览器谢谢:)我只是使用流处理一切,使事情变得更简单。但是你回答了我的问题,明确表示我不能让ImageSharp像ImageSharp.Web那样处理url api。
const int _downloadImageTimeoutInSeconds = 15;
static readonly HttpClient _httpClient = new HttpClient { Timeout = TimeSpan.FromSeconds(_downloadImageTimeoutInSeconds) };

public static async Task<byte[]> DownloadImageAsync(string imageUrl)
{
    try
    {
        using (var httpResponse = await _httpClient.GetAsync(imageUrl))
        {
            if (httpResponse.StatusCode == HttpStatusCode.OK)
            {
                return await httpResponse.Content.ReadAsByteArrayAsync();
            }
            else
            {
                //Url is Invalid
                return null;
            }
        }
    }
    catch (Exception e)
    {
        //Handle Exception
        return null;
    }
}
[FunctionName("MyImageResizer")]
public static async Task<IActionResult> Run(
    [HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = null)] HttpRequest req,
    ILogger log)
{
    string url = req.Query["url"];
    string width = req.Query["width"];
    string height = req.Query["height"];

    string result = string.Empty;
    using (Image image = Image.Load(await DownloadImageAsync(url)))
    {
        image.Mutate(x => x.Resize(int.Parse(width), int.Parse(height)));

        using (var ms = new MemoryStream())
        {
            image.Save(ms, new PngEncoder());
            image.Dispose();
            byte[] imageBytes = ms.ToArray();
            result = Convert.ToBase64String(imageBytes);
            imageBytes = null;
            ms.Dispose();
        }
        GC.Collect();
    }

    return new OkObjectResult(result);
}
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