1
ImageResizerバージョン3.4.3を使用して既存のイメージにウォーターマークを追加しようとしているAzure関数があります。関数はエラーなく実行されますが、ウォーターマークは適用されません。ここでは、コード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、仮想パスを使用して問題を修正しました。もう1つの質問 - 画像サイズが3.8MBから1.5MBに縮小する理由 –