Azure存储功能 - 图像调整器 - 无法更改格式

时间:2017-03-13 23:59:31

标签: c# azure format azure-storage-blobs

我完成了以下教程来编写一个函数(请参阅代码片段),每次我向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));
}

非常感谢!

1 个答案:

答案 0 :(得分:0)

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

如下所示:

产出: enter image description here

跳跳虎: enter image description here

如果将路径设置为“gallery-resized / {blobname} -w200。{blobextension}”,则会根据inputblob文件的blobname和blobextension生成文件。

我建议您首先检查您的跳跳路径参数是否与输出路径的参数相同。

您无法在功能代码中更改其格式,因为该功能将自动生成文件。

如果您想将所有文件的格式更改为jpg,我建议您更改输出的路径如下:

gallery-resized/{blobname}-w200.jpg

然后它将始终生成jpg格式输出。

结果:

enter image description here