【问题标题】:Azure Storage Function - Image Resizer - Cannot change formatAzure 存储功能 - 图像调整器 - 无法更改格式
【发布时间】:2017-03-14 11:03:27
【问题描述】:

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

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

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

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

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));
}

非常感谢!

【问题讨论】:

  • 所以,你的原始文件是 jpeg,你的输出文件是 jpeg。你能解释一下文件格式有什么问题吗?您是说 OutputFormat.Jpeg 设置没有按预期工作吗?

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


【解决方案1】:

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

如下:

输出:

跳跳虎:

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

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

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

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

gallery-resized/{blobname}-w200.jpg

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

结果:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-26
    • 2017-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-04
    • 1970-01-01
    • 2020-03-05
    相关资源
    最近更新 更多