Azure 存储功能 - 图像缩放器 - 无法更改格式

Azure Storage Function - Image Resizer - Cannot change format

我完成了以下教程,编写了一个函数(参见代码片段),每次我向 Azure Blob 存储添加内容时,都会将调整大小的副本保存在另一个容器中。

https://ppolyzos.com/2016/12/30/resize-images-using-azure-functions/

问题是 Azure blob 存储将调整大小后的图像存储为八位字节流(Azure 的默认设置),而不是以前的 jpg 格式

下面的教程说我可以简单地添加 Format = Jpeg;实现如下代码片段所示的格式。

http://jameschambers.com/2016/11/Resizing-Images-Using-Azure-Functions/

有人知道在使用 azure 函数制作调整大小的图像副本时如何保持原始格式 jpeg 吗?

using ImageResizer;
using ImageResizer.ExtensionMethods;

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

    var instructions = new Instructions    
    {        
        Width = 200,        
        Mode = FitMode.Carve,        
        Scale = ScaleMode.Both,
        Format = Jpeg    
    };
    instructions.OutputFormat = OutputFormat.Jpeg;
    ImageBuilder.Current.Build(new ImageJob(myBlob, outputBlob, instructions));
}

非常感谢!

据我所知,azure 函数生成文件的格式是根据输出的路径。

如下所示:

输出:

跳虎队:

如果将路径设置为“gallery-resized/{blobname}-w200.{blobextension}”,这将根据输入的blob文件的blobname和blobextension生成文件。

我建议你首先检查一下你的 tiggers 路径的参数是否与输出路径的参数相同。

您不能在函数代码中更改其格式,因为函数会自动生成文件。

如果你想把所有文件的格式都改成jpg,我建议你改变输出路径如下:

gallery-resized/{blobname}-w200.jpg

那么它会一直生成jpg格式输出。

结果: