public void AddImageWatermarkWithSpecificOptions() { //ExStart:AddImageWatermarkWithSpecificOptions Document doc = new Document(MyDir + "Document.docx"); ImageWatermarkOptions options = new ImageWatermarkOptions { Scale = 5, IsWashout = false }; doc.Watermark.SetImage(Image.FromFile(ImagesDir + "Transparent background logo.png"), options); doc.Save(ArtifactsDir + "WorkWithWatermark.AddImageWatermark.docx"); //ExEnd:AddImageWatermarkWithSpecificOptions }
public static void AddImageWatermarkWithSpecificOptions(string dataDir) { // ExStart: AddImageWatermarkWithSpecificOptions Document doc = new Document(dataDir + "Document.doc"); ImageWatermarkOptions options = new ImageWatermarkOptions() { Scale = 5, IsWashout = false }; doc.Watermark.SetImage(Image.FromFile(dataDir + "Watermark.png"), options); doc.Save(dataDir + "AddImageWatermark_out.docx"); // ExEnd: AddImageWatermarkWithSpecificOptions Console.WriteLine("\nDocument saved successfully.\nFile saved at " + dataDir); }
static void CreateImageWatermark(Document document) { #region #CreateImageWatermark //Check whether the document sections have headers: foreach (Section section in document.Sections) { if (!section.HasHeader(HeaderFooterType.Primary)) { //If not, create an empty header SubDocument header = section.BeginUpdateHeader(); section.EndUpdateHeader(header); } } ImageWatermarkOptions imageWatermarkOptions = new ImageWatermarkOptions(); imageWatermarkOptions.Washout = false; imageWatermarkOptions.Scale = 2; document.WatermarkManager.SetImage(System.Drawing.Image.FromFile("Documents//DevExpress.png"), imageWatermarkOptions); #endregion #CreateImageWatermark }
/// <summary> /// 上传图片 /// </summary> /// <param name="file"></param> /// <param name="imagePath"></param> /// <param name="webRootPath"></param> /// <param name="filename"></param> /// <param name="useWatermark">是否使用水印,默认不启用</param> /// <param name="watermarkType">水印类型,txt:文字;img:图片水印</param> /// <param name="watermarkText">文字水印内容</param> /// <returns></returns> public static async System.Threading.Tasks.Task <string> UploadFile(IFormFile file, string imagePath, string webRootPath, string filename = "", bool useWatermark = false, string watermarkType = "txt", string watermarkText = "") { if (string.IsNullOrWhiteSpace(filename)) { filename = DateTime.Now.Ticks.ToString(); } string suffix = file.FileName.Substring(file.FileName.LastIndexOf('.')); string savePath = imagePath + filename + suffix; if (!Directory.Exists(webRootPath + imagePath)) { Directory.CreateDirectory(webRootPath + imagePath); } using (FileStream fs = new FileStream(webRootPath + savePath, FileMode.Create)) { await file.CopyToAsync(fs); if (useWatermark) { savePath = imagePath + "watermark/" + filename + suffix; if (!Directory.Exists(webRootPath + imagePath + "watermark")) { Directory.CreateDirectory(webRootPath + imagePath + "watermark"); } switch (watermarkType) { case "txt": // 文字水印 { using (var img = Image.FromStream(fs)) { var iOps = new TextWatermarkOptions { TextColor = Color.FromArgb(100, Color.White), Location = TargetSpot.TopLeft, FontName = "微软雅黑", FontStyle = FontStyle.Bold, FontSize = 12 }; img.AddTextWatermark(watermarkText, iOps) .SaveAs($@"{webRootPath}{imagePath}watermark/{filename}{suffix}"); // 保存水印 } } break; case "img": { using (var img = Image.FromStream(fs)) { var iOps = new ImageWatermarkOptions { Location = TargetSpot.TopLeft }; string watermarkPath = $"{ webRootPath }/Image/watermark.png"; var waterImg = Image.FromFile(watermarkPath); var tmpImg = waterImg.Scale(img.Width / 2, img.Height / 2); var waterImgPath = $@"{webRootPath}{imagePath}watermark/{filename}{suffix}"; img.AddImageWatermark(tmpImg, iOps) .SaveAs(waterImgPath); // 保存水印 waterImg.Dispose(); } } break; } } } return(savePath); }