我正在使用this解决方案在图像上应用水印,这是我的代码:
for (int i = 0; i < Request.Files.Count; i++)
{
Image imgg = Image.FromFile(Server.MapPath(@"\Images\WaterMark.png"));
HttpPostedFileBase file = Request.Files[i];
using (Image image = Image.FromStream(file.InputStream, true, true)) //Parameter is not valid exception on uploading .webp file
using (Image watermarkImage = imgg)
{
using (Graphics imageGraphics = Graphics.FromImage(image))
using (TextureBrush watermarkBrush = new TextureBrush(watermarkImage))
{
int x = 4;
int y = image.Height - watermarkImage.Height - 30;
watermarkBrush.TranslateTransform(x, y);
imageGraphics.FillRectangle(watermarkBrush,
new Rectangle(new Point(x, y), new Size(watermarkImage.Width + 1, watermarkImage.Height)));
string extension = System.IO.Path.GetExtension(file.FileName);
filename = "temp" + DateTime.UtcNow.Ticks + extension;
filename = Server.MapPath(@"~\Images\Ads\" + filename);
var i2 = new Bitmap(image);
// image.Save(Server.MapPath(@"~\Images\Ads\" + filename));
System.IO.Directory.CreateDirectory(Server.MapPath(@"~\Images\Ads\"));
i2.Save(filename);
}
}
}
这对除.webp
以外的所有图像都适用。当我上传.webp图片时,在Image.FromStream
参数无效
如何在.webp
图片上应用水印?