【发布时间】:2018-04-05 13:19:10
【问题描述】:
我正在使用 Web API 将图像上传到 Azure Blob,如果尺寸大于 900*900,我想在同一容器中调整上传图像的大小,然后在另一个容器中创建缩略图。
我创建了一个 Azure 函数来执行此操作,它会创建一个缩略图图像,但我不知道如何调整原始图像的大小以防它大于 900*900。
using ImageResizer;
public static void Run(
Stream image, // input blob, large size
Stream imageSmall,
Stream imageMedium) // output blobs
{
var imageBuilder = ImageResizer.ImageBuilder.Current;
var size = imageDimensionsTable[ImageSize.Small];
imageBuilder.Build(
image, imageSmall,
new ResizeSettings(size.Item1, size.Item2, FitMode.Max, null),
false);
image.Position = 0;
size = imageDimensionsTable[ImageSize.Medium];
imageBuilder.Build(
image, imageMedium,
new ResizeSettings(size.Item1, size.Item2, FitMode.Max, null), false);
}
public enum ImageSize
{
ExtraSmall, Small, Medium
}
private static Dictionary<ImageSize, Tuple<int, int>> imageDimensionsTable = new Dictionary<ImageSize, Tuple<int, int>>()
{
{ ImageSize.ExtraSmall, Tuple.Create(320, 200) },
{ ImageSize.Small, Tuple.Create(640, 400) },
{ ImageSize.Medium, Tuple.Create(800, 600) }
};
【问题讨论】:
-
请更好地格式化您的代码。
-
另外,ImageResizer 是付费库,所以无法测试您的代码。
-
你的代码现在做什么?你想让它做什么呢?
-
这是一个 Azure 函数模板。
-
它在一个新的blob中调整原来的大小,如果大小大于900*900,我想替换同一个blob中的原始大小
标签: c# azure azure-functions