1
我有一个Azure函数,它试图使用ImageResizer 3.4.3版向现有图像添加水印。该函数无误地执行,但不应用水印。下面是代码,从here沿着以下:至于为什么不施加水印ImageResizer水印不出现
private static void ApplyWatermark(Stream inputStream, string blobName)
{
var imageConfiguration = Config.Current;
var plugin = imageConfiguration.Plugins.Get<WatermarkPlugin>();
if (plugin == null)
{
plugin = new WatermarkPlugin();
plugin.Install(imageConfiguration);
}
plugin = imageConfiguration.Plugins.Get<WatermarkPlugin>();
var imageLayer = new ImageLayer(imageConfiguration)
{
Path = HostingEnvironment.MapPath(_configuration.Get<string>("BadgeUrl")),
Align = ContentAlignment.MiddleCenter
};
plugin.NamedWatermarks["badge"] = new Layer[]
{
imageLayer
};
inputStream.Position = 0;
var outputStream = new MemoryStream();
imageConfiguration.CurrentImageBuilder.Build(inputStream, outputStream,
new ResizeSettings("watermark=badge"));
outputStream.Position = 0;
_blobStorageRepository.AddorUpdateAsync(_configuration.BlobStorageContainer,
blobName, outputStream).Wait();
}
任何想法?
你试过4.0吗?可能有一个相关的错误修正。 –
另外,我不认为你可以给ImageLayers物理路径;他们需要是虚拟的(移除MapPath调用)。 –
@NathanaelJones,使用虚拟路径解决了问题。还有一个问题 - 为什么图像大小会从3.8MB缩小到1.5MB? –