好的,我正在尝试在我的网络应用程序中使用ImageResizer 组件。我有以下代码:
var versions = new Dictionary<string, string>();
//Define the versions to generate
versions.Add("_001", "maxwidth=300&maxheight=300&format=jpg");
versions.Add("_002", "maxwidth=600&maxheight=600&format=jpg");
versions.Add("_003", "maxwidth=1920&maxheight=1080&format=jpg&process=no"); // I expect it not to resave the image if original is smaller
string uploadFolder = "...my folder path...";
if (!Directory.Exists(uploadFolder))
Directory.CreateDirectory(uploadFolder);
//Generate each version
foreach (string suffix in versions.Keys)
{
//Generate a filename (GUIDs are best).
string fileName = Path.Combine(uploadFolder, DEFAULT_IMAGE_NAME + suffix);
//Let the image builder add the correct extension based on the output file type
fileName = ImageBuilder.Current.Build(file, fileName, new ResizeSettings(versions[suffix]), false, true);
}
file.SaveAs(uploadFolder + DEFAULT_IMAGE_NAME + "_000.jpg");
如您所知,我正在保存一个图像 + 原始图像的 3 个版本。但是,如果需要调整大小,我只希望重新编码和重新保存图像。因此,如果我上传 1000x1000 图像,我希望 main_000.jpg 和 main_003.jpg 是相同的。但是,情况并非如此(ImageResizer 也会调整该图像的大小,并且通常保存的文件大小大于 main_000.jpg)。
我尝试添加 process=no 作为参数,但它不起作用。任何人都知道是否支持这种情况以及我需要添加哪个参数?