/// <summary> /// Adds image watermark using stream to a supported document /// </summary> public static void AddImageWatermarkUsingStream() { try { //ExStart:AddImageWatermarkUsingStream using (Stream watermarkStream = File.OpenRead(@"D:\watermark.jpg")) { using (Document doc = Document.Load(Utilities.MapSourceFilePath(PNG_FILE_PATH))) { // Use stream containing an image as constructor parameter using (ImageWatermark watermark = new ImageWatermark(watermarkStream)) { // Add watermark to the document doc.AddWatermark(watermark); doc.Save(); } } } //ExEnd:AddImageWatermarkUsingStream } catch (Exception exp) { Console.Write(exp.Message); } }
private static void AddWatermark(IEnumerable <string> images, string instituce) { var assembly = Assembly.GetExecutingAssembly(); var watermarkStreamResource = assembly.GetManifestResourceStream("Daliboris.Texty.Export.Watermarks." + instituce); if (watermarkStreamResource == null) { throw new Exception(string.Format("Watermark Daliboris.Texty.Export.Watermarks.{0} not found", instituce)); } var imageWatermark = Image.FromStream(watermarkStreamResource); var watermark = new ImageWatermark(imageWatermark); watermark.ContentAlignment = ContentAlignment.BottomCenter; watermark.Alpha = 99F; foreach (var image in images) { var fi = new FileInfo(image); var tempFile = fi.FullName.Substring(0, fi.FullName.Length - fi.Extension.Length) + ".help" + fi.Extension; File.Move(fi.FullName, tempFile); watermark.SaveProcessedImageToFileSystem(tempFile, fi.FullName); File.Delete(tempFile); } }
protected void ProcessImage() { // Setup the source file name and the output file name string sourceImageFileName = this.imgSource.ImageUrl; string outputImageFileName = "~/repository/output/Ex_A_102.jpg"; // Setup a collection and add filters selected by the user ImageProcessingFilterCollection filters = new ImageProcessingFilterCollection(); string[] sortedFilterIDS = this.hfFilterList.Value.Split(','); // The filterIDS contains the sorted filters that we have to apply... for (int i = 0; i < sortedFilterIDS.Length; i++) { string filterID = sortedFilterIDS[i]; switch (filterID) { case "filterRotate": if (this.cbFilterRotate.Checked) { // Rotate the image by 90° filters.Add(ImageTransformation.Rotate90); } break; case "filterResize": if (this.cbFilterResize.Checked) { // Resize the image so that it can be contained within a 280 x 280 square filters.Add(new ScaledResizeConstraint(280, 280)); } break; case "filterChangeColors": if (this.cbFilterChangeColors.Checked) { // Change hue, saturation, brightness and contrast of the image filters.Add(new ImageAdjustmentsFilter(30, 50, 20, -50)); } break; case "filterWatermark": if (this.cbFilterWatermark.Checked) { // Apply an image watermak ImageWatermark watermark = new ImageWatermark("~/repository/watermark/piczardWatermark1.png"); watermark.ContentAlignment = System.Drawing.ContentAlignment.BottomRight; filters.Add(watermark); } break; } } // Process the image filters.SaveProcessedImageToFileSystem(sourceImageFileName, outputImageFileName); // Update the displayed image (add a timestamp parameter to the query URL to ensure that the image is reloaded by the browser) this.imgOutput.ImageUrl = outputImageFileName + "?timestamp=" + DateTime.UtcNow.Ticks.ToString(); }
/// <summary> /// Makes a preview from the file specified and then stores this into the path /// specified in thumbPath. /// </summary> /// <param name="file">File information.</param> /// <param name="thumbPath">Preview path.</param> /// <returns></returns> protected bool makeThumb(FileInfo file, string thumbPath) { if (!File.Exists(thumbPath) | this.ResetPreviews) { HttpServerUtility server = HttpContext.Current.Server; //get the original pictures Bitmap imgIn = new Bitmap(file.FullName); // System.Drawing.Image.FromFile(file.FullName); //set the format to be the same as the original picture System.Drawing.Imaging.ImageFormat format = imgIn.RawFormat; System.Drawing.Size newSize = new Size(this.MaxPreviewWidth, this.MaxPreviewHeight); System.Drawing.Bitmap imgOut = Amns.GreyFox.Imaging.BitmapTransform.ProportionalResize(imgIn, format, newSize); if (watermarkUrl != string.Empty) { string watermarkImageUrl = HttpContext.Current.Server.MapPath(watermarkUrl); Bitmap wbmp = new Bitmap(watermarkImageUrl); ImageWatermark.AddWatermark(imgOut, wbmp, watermarkLocation); wbmp.Dispose(); } string borderTop = mapBorder(borderTopUrl); string borderLeft = mapBorder(borderLeftUrl); string borderRight = mapBorder(borderRightUrl); string borderBottom = mapBorder(borderBottomUrl); string borderTopLeft = mapBorder(borderTopLeftUrl); string borderTopRight = mapBorder(borderTopRightUrl); string borderBottomLeft = mapBorder(borderBottomLeftUrl); string borderBottomRight = mapBorder(borderBottomRightUrl); BorderFilter borderFilter = new BorderFilter(borderTop, borderLeft, borderRight, borderBottom, borderTopLeft, borderTopRight, borderBottomLeft, borderBottomRight); borderFilter.ApplyFilter(imgOut); Amns.GreyFox.Imaging.ExifProperties.CopyProperties(imgIn, imgOut); ImageCodecInfo[] codecArray = ImageCodecInfo.GetImageEncoders(); EncoderParameter[] parameterArray = new EncoderParameter[1]; parameterArray[0] = new EncoderParameter(Encoder.Quality, previewQuality); EncoderParameters codecParameters = new EncoderParameters(); codecParameters.Param = parameterArray; imgOut.Save(thumbPath, codecArray[1], codecParameters); imgIn.Dispose(); imgOut.Dispose(); return(true); } return(false); }
/// <summary> /// 生成带水印的图片 /// install- Package CodeCarvings.Piczard /// </summary> /// <param name="watermarkPath">水印图片路径</param> /// <param name="alpha">透明度</param> /// <param name="path">原图路径</param> /// <param name="path2">保存路径</param> /// <param name="newName">缩略图名称</param> public static void GetWatermarkImage(string watermarkPath, int alpha, string path, string path2, string newName) { ImageWatermark imgWatermark = new ImageWatermark(watermarkPath); imgWatermark.ContentAlignment = System.Drawing.ContentAlignment.BottomRight; ImageProcessingJob job = new ImageProcessingJob(); job.Filters.Add(imgWatermark); job.SaveProcessedImageToFileSystem(path, path2 + @"\" + newName + ".png"); }
//水印 //CodeCarvings.Piczard static void ImgWaterMark() { ImageWatermark imgWatermark = new ImageWatermark(@"E:\Program\NET高级培训\NET掌上租\TEST\Image\bg.jpg"); imgWatermark.ContentAlignment = System.Drawing.ContentAlignment.BottomRight; //水印位置 imgWatermark.Alpha = 50; //透明度,需要水印图片是背景透明的png图片 ImageProcessingJob jobNormal = new ImageProcessingJob(); jobNormal.Filters.Add(imgWatermark); //添加水印 jobNormal.Filters.Add(new FixedResizeConstraint(300, 300)); //限制图片的大小,避免生成大图。如果想原图大小处理,就不用加这个Filter jobNormal.SaveProcessedImageToFileSystem(@"E:\Program\NET高级培训\NET掌上租\TEST\Image\1.jpg", @"E:\Program\NET高级培训\NET掌上租\TEST\Image\3.jpg"); }
public static void GenerateWatermark() { ImageWatermark imgWatermark = new ImageWatermark(@"C:\Program Files\longCode\LongRoom\Long.Test\img\star.ico"); imgWatermark.ContentAlignment = System.Drawing.ContentAlignment.BottomRight; //水印位置 imgWatermark.Alpha = 50; //透明度,需要水印图片是背景透明的png图片 ImageProcessingJob jobNormal = new ImageProcessingJob(); jobNormal.Filters.Add(imgWatermark); //添加水印 jobNormal.Filters.Add(new FixedResizeConstraint(600, 600)); //限制图片的大小,避免生成大图。如果想原图大小处理,就不用加这个Filter jobNormal.SaveProcessedImageToFileSystem(@"C:\Program Files\longCode\LongRoom\Long.Test\img\test.png", @"C:\Program Files\longCode\LongRoom\Long.Test\img\cool.png"); }
public void WaterMark() { ImageWatermark imgWatermark = new ImageWatermark(@"D:\a\sauce.png"); imgWatermark.ContentAlignment = System.Drawing.ContentAlignment.BottomRight; //水印位置 imgWatermark.Alpha = 100; //透明度,需要水印图片是背景透明的png图片 ImageProcessingJob jobNormal = new ImageProcessingJob(); jobNormal.Filters.Add(imgWatermark); //添加水印 jobNormal.Filters.Add(new FixedResizeConstraint(300, 300)); //限制图片的大小,避免生成大图。如果想原图大小处理,就不用加这个Filter jobNormal.SaveProcessedImageToFileSystem(@"D:\a\Tulips.jpg", @"D:\a\2.png"); }
/// <summary> /// Adds watermark to the images inside a document /// </summary> public static void AddWatermarkToImages() { try { //ExStart:AddWatermarkToImages using (Document doc = Document.Load(Utilities.MapSourceFilePath(PPT_FILE_PATH))) { // Initialize text watermark TextWatermark textWatermark = new TextWatermark("Protected image", new Font("Arial", 8)); textWatermark.HorizontalAlignment = HorizontalAlignment.Center; textWatermark.VerticalAlignment = VerticalAlignment.Center; textWatermark.RotateAngle = 45; textWatermark.SizingType = SizingType.ScaleToParentDimensions; textWatermark.ScaleFactor = 1; // Initialize image watermark using (ImageWatermark imageWatermark = new ImageWatermark(@"D:\protect.jpg")) { imageWatermark.HorizontalAlignment = HorizontalAlignment.Center; imageWatermark.VerticalAlignment = VerticalAlignment.Center; imageWatermark.RotateAngle = -45; imageWatermark.SizingType = SizingType.ScaleToParentDimensions; imageWatermark.ScaleFactor = 1; // Find all images in a document WatermarkableImageCollection images = doc.FindImages(); for (int i = 0; i < images.Count; i++) { if (images[i].Width > 100 && images[i].Height > 100) { if (i % 2 == 0) { images[i].AddWatermark(textWatermark); } else { images[i].AddWatermark(imageWatermark); } } } } doc.Save(); } //ExEnd:AddWatermarkToImages } catch (Exception exp) { Console.Write(exp.Message); } }
/// <summary> /// 生成水印 /// </summary> /// <param name="waterFileName"></param> /// <param name="sourceFileName"></param> /// <param name="targetFileName"></param> public static void BuiildWaterMark(string waterFileName, string sourceFileName, string targetFileName) { ImageProcessingJob jobThumb = new ImageProcessingJob(); ImageWatermark imgWater = new ImageWatermark(waterFileName); imgWater.ContentAlignment = System.Drawing.ContentAlignment.BottomRight; //水印位置 imgWater.Alpha = 50; //透明度,需要水印图片是背景透明的png图片 jobThumb.Filters.Add(imgWater); //添加水印 jobThumb.Filters.Add(new FixedResizeConstraint(200, 200)); //缩略图尺寸 jobThumb.SaveProcessedImageToFileSystem(sourceFileName, targetFileName, new BmpFormatEncoderParams()); //第一个参数可以是string文件名,也可以是流 }
protected void ProcessImage() { // Setup the source file name and the output file name string sourceImageFileName = this.imgSource.ImageUrl; string outputImageFileName = "~/repository/output/Ex_A_224.jpg"; ImageWatermark imageWatermark = null; switch (this.ddlImageSource.SelectedIndex) { case 0: // piczardWatermark1.png // In this demo the image is automatically loaded/disposed by the ImageWatermark class imageWatermark = new ImageWatermark("~/repository/watermark/piczardWatermark1.png"); imageWatermark.ContentAlignment = (ContentAlignment)Enum.Parse(typeof(ContentAlignment), this.ddlContentAlignment.SelectedValue); imageWatermark.Unit = (GfxUnit)Enum.Parse(typeof(GfxUnit), this.ddlMainUnit.SelectedValue); imageWatermark.ContentDisplacement = new Point(int.Parse(this.ddlContentDisplacementX.SelectedValue, CultureInfo.InvariantCulture), int.Parse(this.ddlContentDisplacementY.SelectedValue, CultureInfo.InvariantCulture)); imageWatermark.Alpha = int.Parse(this.ddlAlpha.SelectedValue, CultureInfo.InvariantCulture); // Process the image imageWatermark.SaveProcessedImageToFileSystem(sourceImageFileName, outputImageFileName); break; case 1: // codeCarvingsWatermark1.gif // In this demo the image is manually loaded/disposed (useful when you need to apply the same // watermark to multiple images) using (LoadedImage image = ImageArchiver.LoadImage("~/repository/watermark/codeCarvingsWatermark1.gif")) { imageWatermark = new ImageWatermark(image.Image); imageWatermark.ContentAlignment = (ContentAlignment)Enum.Parse(typeof(ContentAlignment), this.ddlContentAlignment.SelectedValue); imageWatermark.Unit = (GfxUnit)Enum.Parse(typeof(GfxUnit), this.ddlMainUnit.SelectedValue); imageWatermark.ContentDisplacement = new Point(int.Parse(this.ddlContentDisplacementX.SelectedValue, CultureInfo.InvariantCulture), int.Parse(this.ddlContentDisplacementY.SelectedValue, CultureInfo.InvariantCulture)); imageWatermark.Alpha = int.Parse(this.ddlAlpha.SelectedValue, CultureInfo.InvariantCulture); // Process the image imageWatermark.SaveProcessedImageToFileSystem(sourceImageFileName, outputImageFileName); } break; } // Update the displayed image (add a timestamp parameter to the query URL to ensure that the image is reloaded by the browser) this.imgOutput.ImageUrl = outputImageFileName + "?timestamp=" + DateTime.UtcNow.Ticks.ToString(); // Display the generated image this.phOutputContainer.Visible = true; }
public ActionResult UploadPic(int houseId, HttpPostedFileBase file) { /* * if (houseId < 5) * { * return Json(new AjaxResult { Status = "error", ErrorMsg = "id必须大于5" }); * }*/ //month月,minute string md5 = CommonHelper.CalcMD5(file.InputStream); string ext = Path.GetExtension(file.FileName); string path = "/upload/" + DateTime.Now.ToString("yyyy/MM/dd") + "/" + md5 + ext; // /upload/2017/07/07/afadsfa.jpg string thumbPath = "/upload/" + DateTime.Now.ToString("yyyy/MM/dd") + "/" + md5 + "_thumb" + ext; string fullPath = HttpContext.Server.MapPath("~" + path); //d://22/upload/2017/07/07/afadsfa.jpg string thumbFullPath = HttpContext.Server.MapPath("~" + thumbPath); new FileInfo(fullPath).Directory.Create(); //尝试创建可能不存在的文件夹 file.InputStream.Position = 0; //指针复位 //file.SaveAs(fullPath);//SaveAs("d:/1.jpg"); //缩略图 ImageProcessingJob jobThumb = new ImageProcessingJob(); jobThumb.Filters.Add(new FixedResizeConstraint(200, 200));//缩略图尺寸200*200 jobThumb.SaveProcessedImageToFileSystem(file.InputStream, thumbFullPath); file.InputStream.Position = 0;//指针复位 //水印 ImageWatermark imgWatermark = new ImageWatermark(HttpContext.Server.MapPath("~/images/watermark.jpg")); imgWatermark.ContentAlignment = System.Drawing.ContentAlignment.BottomRight; //水印位置 imgWatermark.Alpha = 50; //透明度,需要水印图片是背景透明的png图片 ImageProcessingJob jobNormal = new ImageProcessingJob(); jobNormal.Filters.Add(imgWatermark);//添加水印 jobNormal.Filters.Add(new FixedResizeConstraint(600, 600)); jobNormal.SaveProcessedImageToFileSystem(file.InputStream, fullPath); houseService.AddNewHousePic(new HousePicDTO { HouseId = houseId, Url = path, ThumbUrl = thumbPath }); CreateStaticPage(houseId);//上传了新图片或者删除图片都要重新生成html页面 return(Json(new AjaxResult { Status = "ok" })); }
static void Main(string[] args) { // 两张图片合并成一张. TwoImageInOne.DoImageProc(); // 变更图片尺寸. ImageResize.DoImageProc(); // 打水印. ImageWatermark.DoImageWatermark(); Console.WriteLine("Finish!"); Console.ReadKey(); }
public static void ImageWater(UploadConfig uploadobj, string imgFilePath) { ImageWatermark iwobj = new ImageWatermark(0, 0, imgFilePath); if (uploadobj.WatermarkType == "0") //水印为文字类型 { iwobj.Quality = 100; iwobj.Title = uploadobj.WatermarkText; iwobj.FontSize = int.Parse(uploadobj.WatermarkFontSize); switch (uploadobj.WatermarkFontStyle) { case "1": iwobj.StrStyle = FontStyle.Bold; break; case "2": iwobj.StrStyle = FontStyle.Italic; break; case "4": iwobj.StrStyle = FontStyle.Underline; break; case "8": iwobj.StrStyle = FontStyle.Strikeout; break; } iwobj.FontColor = ColorTranslator.FromHtml("#" + uploadobj.WatermarkFontColor); iwobj.BackGroudColor = Color.White; iwobj.FontFamilyName = uploadobj.WatermarkFontType; iwobj.Waterpos = uploadobj.WatermarkLocation; iwobj.FontBorderColor = ColorTranslator.FromHtml("#" + uploadobj.WatermarkFontBorderColor); iwobj.FontBorderSize = int.Parse(uploadobj.WatermarkFontBorder); iwobj.Watermark(); } else { iwobj.Waterpos = uploadobj.WatermarkLocation; iwobj.WaterPath = System.Web.HttpContext.Current.Server.MapPath("~/" + uploadobj.WatermarkPic); iwobj.WaterPicturemark(); } }
public static void SetPageTemplate() { // Uncomment the line below to add a layout grid to the title header page //headerTemplate.Elements.Add( new LayoutGrid() ); // Create Text watermark TextWatermark textWatermark = new TextWatermark("Draft"); textWatermark.TextOutlineColor = textWatermark.TextColor; textWatermark.TextColor = null; // Add Text watermark to the template template.Elements.Add(textWatermark); //uncomment the below lines to add image watermark // Create Image watermark ImageWatermark imageWatermark = new ImageWatermark(Util.GetResourcePath("Images/DPDFLogo.png")); // Add Text watermark to the template template.Elements.Add(imageWatermark); }
public ActionResult UploadPic(long houseId, HttpPostedFileBase file) { //一般是用文件的md5值来命名 string fileMd5 = CommonHelper.CalcMd5(file.InputStream); string fileExt = Path.GetExtension(file.FileName); string path = "/upload/" + DateTime.Now.ToString("yyyy/MM/dd") + "/" + fileMd5 + fileExt; string trumbPath = "/upload/" + DateTime.Now.ToString("yyyy/MM/dd") + "/" + fileMd5 + "_trumb" + fileExt; string trumbFullPath = Server.MapPath("~" + trumbPath); string fullPath = Server.MapPath("~" + path); new FileInfo(trumbFullPath).Directory.Create(); file.InputStream.Position = 0; //指针复位 //缩略图 ImageProcessingJob jobThumb = new ImageProcessingJob(); jobThumb.Filters.Add(new FixedResizeConstraint(200, 200));//缩略图尺寸 200*200 jobThumb.SaveProcessedImageToFileSystem(file.InputStream, trumbFullPath, new JpegFormatEncoderParams()); file.InputStream.Position = 0; //指针复位 ImageWatermark imgWatermark = new ImageWatermark(@"F:\86.jpg"); imgWatermark.ContentAlignment = System.Drawing.ContentAlignment.BottomRight; //水印位置 imgWatermark.Alpha = 80; //透明度,需要水印图片是背景透明的 png 图片 ImageProcessingJob jobNormal = new ImageProcessingJob(); jobNormal.Filters.Add(imgWatermark);//添加水印 //jobNormal.Filters.Add(new FixedResizeConstraint(600, 600));//限制图片的大小,避免生成大图。如果想原图大小处理,就不用加这个 Filter然后调用 SaveProcessedImageToFileSystem 或者 SaveProcessedImageToStream 来保存文件 imgWatermark.SaveProcessedImageToFileSystem(file.InputStream, fullPath, new JpegFormatEncoderParams()); HouseService.AddNewHousePic(new HousePicDTO() { HouseId = houseId, Url = path, ThumbUrl = trumbPath }); CreateStaticPages(houseId);//页面内容有变化,重新生成静态页 return(Json(new AjaxResult() { Status = "ok" })); }
public ActionResult UploadPic(long houseId, HttpPostedFileBase file) { string md5 = CommonHelper.CalcMD5(file.InputStream); string ext = Path.GetExtension(file.FileName); string path = "/PicUpload/" + DateTime.Now.ToString("yyyy/MM/dd") + "/" + md5 + ext; string thumbPath = "/PicUpload/" + DateTime.Now.ToString("yyyy/MM/dd") + "/" + md5 + "_thumb" + ext; string fullPath = Server.MapPath("~" + path); string fullThumbPath = Server.MapPath("~" + thumbPath); new FileInfo(fullPath).Directory.Create();//防止文件夹未创建 file.InputStream.Position = 0; //这里有可能出现指针未复位的情况 //file.SaveAs(fullPath); //添加缩略图 ImageProcessingJob jobThumb = new ImageProcessingJob(); jobThumb.Filters.Add(new FixedResizeConstraint(200, 200)); jobThumb.SaveProcessedImageToFileSystem(file.InputStream, fullThumbPath); //指针复位 //添加水印 file.InputStream.Position = 0; ImageWatermark imgWatermark = new ImageWatermark(Server.MapPath("~/images/watermark.png")); imgWatermark.ContentAlignment = System.Drawing.ContentAlignment.BottomRight; imgWatermark.Alpha = 50; ImageProcessingJob jobWatermark = new ImageProcessingJob(); jobWatermark.Filters.Add(imgWatermark); jobWatermark.Filters.Add(new FixedResizeConstraint(600, 600)); jobWatermark.SaveProcessedImageToFileSystem(file.InputStream, fullPath); HouseService.AddNewHousePic(new HousePicDTO() { HouseId = houseId, Url = path, ThumbUrl = thumbPath }); return(Json(new AjaxResult() { Status = "ok" })); }
public ActionResult UploadPic(HttpPostedFileBase file) { //用文件的流来计算文件的MD5值 var fileMD5 = Common.CommonHelper.CalcMD5(file.InputStream); var ext = Path.GetExtension(file.FileName); var path = $"/upload/{DateTime.Now.ToString("yyyy/MM/dd")}/{fileMD5}{ext}"; var thumbPath = $"/upload/{DateTime.Now.ToString("yyyy/MM/dd")}/{fileMD5}_thumb{ext}"; var fullPath = HttpContext.Server.MapPath("~" + path); var thumbFullPath = HttpContext.Server.MapPath("~" + thumbPath); //如果文件夹不存在,则创建 new FileInfo(fullPath).Directory.Create(); //缩略图 ImageProcessingJob jobThumb = new ImageProcessingJob(); //缩略图尺寸200*200 jobThumb.Filters.Add(new FixedResizeConstraint(200, 200)); //保存缩略图到磁盘 jobThumb.SaveProcessedImageToFileSystem(file.InputStream, thumbFullPath); //水印 ImageWatermark imgWatermark = new ImageWatermark(HttpContext.Server.MapPath("~/images/watermark/water.jpg")); imgWatermark.ContentAlignment = System.Drawing.ContentAlignment.BottomRight; imgWatermark.Alpha = 50; ImageProcessingJob jobNormal = new ImageProcessingJob(); jobNormal.Filters.Add(imgWatermark); jobNormal.Filters.Add(new FixedResizeConstraint(600, 600)); //保存大图(含水印)到磁盘 jobNormal.SaveProcessedImageToFileSystem(file.InputStream, fullPath); //file.SaveAs(HttpContext.Server.MapPath("~/" + file.FileName)); //file.SaveAs(fullPath); return(Content("ok")); }
public ActionResult PicUpload(long houseId, HttpPostedFileBase file) { string md5 = CommonHelper.GetMD5(file.InputStream); string ext = Path.GetExtension(file.FileName); string path = "/upload/" + DateTime.Now.ToString("yyyy/MM/dd") + "/" + md5 + ext; string thumbPath = "/upload/" + DateTime.Now.ToString("yyyy/MM/dd") + "/" + md5 + "_thumb" + ext; string fullPath = HttpContext.Server.MapPath("~" + path); string thumbFullPath = HttpContext.Server.MapPath("~" + thumbPath); new FileInfo(fullPath).Directory.Create(); //file.SaveAs(fullPath); //缩略图 file.InputStream.Position = 0; ImageProcessingJob jobThumb = new ImageProcessingJob(); jobThumb.Filters.Add(new FixedResizeConstraint(200, 200));//缩略图尺寸 200*200 jobThumb.SaveProcessedImageToFileSystem(file.InputStream, thumbFullPath); //水印 file.InputStream.Position = 0; ImageWatermark imgWatermark = new ImageWatermark(HttpContext.Server.MapPath("~/images/fb.png")); imgWatermark.ContentAlignment = System.Drawing.ContentAlignment.BottomRight; //水印位置 imgWatermark.Alpha = 50; //透明度,需要水印图片是背景透明的 png 图片 ImageProcessingJob jobNormal = new ImageProcessingJob(); jobNormal.Filters.Add(imgWatermark); //添加水印 jobNormal.Filters.Add(new FixedResizeConstraint(600, 600)); //限制图片的大小,避免生成 jobNormal.SaveProcessedImageToFileSystem(file.InputStream, fullPath); if (!houseService.CheckPic(path)) { houseService.AddNewHousePic(new HousePicDTO { HouseId = houseId, Url = path, ThumbUrl = thumbPath }); } return(Json(new AjaxResult { Status = "ok" })); }
//处理图片的上传请求 public ActionResult UpLoadPic(int houseId, HttpPostedFileBase file) { //HttpContext.Server.MapPath()表示保存到网站的根目录 //保存的文件名:houseId.扩展名;Path.GetExtension:获取文件的扩展名 //file.SaveAs(HttpContext.Server.MapPath("~/"+houseId+Path.GetExtension(file.FileName))); string mds = CommonHelper.CalMD5(file.InputStream); string ext = Path.GetExtension(file.FileName);//得到文件的后缀名 string path = "/upload/" + DateTime.Now.ToString("yyyy/MM/dd") + "/" + mds + ext; string fullPath = HttpContext.Server.MapPath("~" + path); string thumbPath = "/upload/" + DateTime.Now.ToString("yyyy/MM/dd") + "/" + mds + "_thumb" + ext; string thumbFullPath = HttpContext.Server.MapPath("~" + thumbPath); //判断文件夹upload是否存在 new FileInfo(fullPath).Directory.Create(); //尝试创建可能不存在的文件夹 file.InputStream.Position = 0; //指针复位,如果Md5生成的文件夹名为0的情况 //file.SaveAs(fullPath); //缩列图 ImageProcessingJob jobThumb = new ImageProcessingJob(); jobThumb.Filters.Add(new FixedResizeConstraint(200, 200));//缩略图尺寸 200*200 调用 ImageProcessingJob 的 jobThumb.SaveProcessedImageToFileSystem(file.InputStream, thumbFullPath); file.InputStream.Position = 0; //水印 ImageWatermark imgWatermark = new ImageWatermark("~/images/watermark.jpg"); imgWatermark.ContentAlignment = System.Drawing.ContentAlignment.BottomRight;//水印位置 imgWatermark.Alpha = 50;//透明度,需要水印图片是背景透明的 png 图片 ImageProcessingJob jobNormal = new ImageProcessingJob(); jobNormal.Filters.Add(imgWatermark); //添加水印 jobNormal.Filters.Add(new FixedResizeConstraint(600, 600)); //限制图片的大小,避免生成大图。如果想原图大小处理,就不用加这个 Filter jobNormal.SaveProcessedImageToFileSystem(file.InputStream, fullPath); //上传成功后把文件加入到数据库中 houseService.AddNewHousePic(new HousePicDTO { HouseId = houseId, Url = path, ThumbUrl = thumbPath }); return(Json(new AjaxResult { Status = "ok" })); }
/// <summary> /// Adds image watermark to a supported document /// </summary> public static void AddImageWatermark() { try { //ExStart:AddImageWatermark using (Document doc = Document.Load(Utilities.MapSourceFilePath(PPT_FILE_PATH))) { // Use path to the image as constructor parameter using (ImageWatermark watermark = new ImageWatermark(@"D:\watermark.jpg")) { // Add watermark to the document doc.AddWatermark(watermark); doc.Save(); } } //ExEnd:AddImageWatermark } catch (Exception exp) { Console.Write(exp.Message); } }
public ActionResult FileUpload(long houseId, HttpPostedFileBase file) { //获取文件的后缀名 string md5Name = Common.CommonHelper.CalcMD5(file.InputStream); string extension = Path.GetExtension(file.FileName); string newFileName = md5Name + extension; string thumbFileName = md5Name + "_thumb" + extension; string watermarkFileName = md5Name + "_watermark" + extension; //原图文件路径 string path = Path.Combine("/UpLoadFile", DateTime.Now.Year.ToString(), DateTime.Now.Month.ToString(), DateTime.Now.Day.ToString(), newFileName); //缩略图文件路径 string thumbPath = Path.Combine("/UpLoadFile", DateTime.Now.Year.ToString(), DateTime.Now.Month.ToString(), DateTime.Now.Day.ToString(), thumbFileName); //水印文件路径 string watermarkPath = Path.Combine("/UpLoadFile", DateTime.Now.Year.ToString(), DateTime.Now.Month.ToString(), DateTime.Now.Day.ToString(), watermarkFileName); string fullPath = this.HttpContext.Server.MapPath("~" + path); string thumbFullPath = this.HttpContext.Server.MapPath("~" + thumbPath); string watermarkFullPath = this.HttpContext.Server.MapPath("~" + watermarkPath); //尝试创建文件夹 new FileInfo(fullPath).Directory.Create(); //原文件 file.SaveAs(fullPath); //文件指针复位,可能在保存时指针的位置指向了最后 file.InputStream.Position = 0; //缩略图 ImageProcessingJob jobThumb = new ImageProcessingJob(); jobThumb.Filters.Add(new FixedResizeConstraint(200, 200)); jobThumb.SaveProcessedImageToFileSystem(file.InputStream, thumbFullPath); //文件指针复位,可能在保存时指针的位置指向了最后 file.InputStream.Position = 0; //水印 ImageWatermark imgWatermark = new ImageWatermark(HttpContext.Server.MapPath("~/images/watermark.png")); imgWatermark.ContentAlignment = System.Drawing.ContentAlignment.BottomRight; //水印位置 imgWatermark.Alpha = 50; //透明度,需要水印图片是背景透明的 png 图片 ImageProcessingJob jobNormal = new ImageProcessingJob(); jobNormal.Filters.Add(imgWatermark); //添加水印 jobNormal.Filters.Add(new FixedResizeConstraint(600, 600)); //限制图片的大小,避免生成大图。如果想原图大小处理,就不用加这个 Filter jobNormal.SaveProcessedImageToFileSystem(file.InputStream, watermarkFullPath); HousePicDTO housePic = new HousePicDTO(); housePic.HouseId = houseId; housePic.ThumbUrl = thumbPath; housePic.Url = path; HousePicService.AddNewHousePic(housePic); return(Json(new AjaxResult { Status = "ok" })); }
protected void btnUpload_Click(object sender, EventArgs e) { string msg = ""; if (uploadobj.IsEnableUpload == "1") // 判断是否允许上传 { string noExt = SystemConst.NOT_ALLOWED_UPLOAD_TYPE; // 不允许上传类型 int num = Utils.ParseInt(Request.Form["hidNum"], 0); for (int i = 1; i <= num; i++) { HttpPostedFile fil = Request.Files["file" + i]; if (!string.IsNullOrEmpty(fil.FileName)) { if (fil.ContentLength > MaxSize) { msg += "文件" + i + "上传失败,原因是文件大小超过最大上传限制!<br>"; continue; } string fileName = Path.GetFileName(fil.FileName); string fileExt = Path.GetExtension(fileName).ToLower(); //上传文件扩展名 if (AllowExt.IndexOf(fileExt.Replace(".", "")) == -1) { msg += "文件" + i + "上传失败,原因是文件类型不正确!<br>"; continue; } if (noExt.IndexOf(fileExt) != -1) { msg += "文件" + i + "上传失败,原因是文件类型“" + fileExt + "”的文件不允许上传!<br>"; continue; } if (SavePath.IndexOf(":") == -1) //判断输入的是虚拟路径 { SavePath = Server.MapPath(GetVirtualPath + SavePath); } SavePath = SavePath + "/" + DateTime.Now.Year + "/" + DateTime.Now.Month + "/"; if (!Directory.Exists(SavePath)) { Directory.CreateDirectory(SavePath); } string saveName = DateTime.Now.ToString("yyyyMMddHHmmss"); // 上传文件名 fileName = SavePath + saveName + fileExt; URL = DateTime.Now.Year + "/" + DateTime.Now.Month + "/" + saveName + fileExt; try { fil.SaveAs(fileName); //保存至服务器 DelFile(); if (this.UpType == "image" && uploadobj.IsEnableWatermark == "1") //如果上传图片,则判断是否需要打水印 { ImageWatermark iwobj = new ImageWatermark(0, 0, fileName); if (uploadobj.WatermarkType == "0") //水印为文字类型 { iwobj.Quality = 100; iwobj.Title = uploadobj.WatermarkText; iwobj.FontSize = int.Parse(uploadobj.WatermarkFontSize); switch (uploadobj.WatermarkFontStyle) { case "1": iwobj.StrStyle = FontStyle.Bold; break; case "2": iwobj.StrStyle = FontStyle.Italic; break; case "4": iwobj.StrStyle = FontStyle.Underline; break; case "8": iwobj.StrStyle = FontStyle.Strikeout; break; } iwobj.FontColor = ColorTranslator.FromHtml("#" + uploadobj.WatermarkFontColor); iwobj.BackGroudColor = Color.White; iwobj.FontFamilyName = uploadobj.WatermarkFontType; iwobj.Waterpos = uploadobj.WatermarkLocation; iwobj.FontBorderColor = ColorTranslator.FromHtml("#" + uploadobj.WatermarkFontBorderColor); iwobj.FontBorderSize = int.Parse(uploadobj.WatermarkFontBorder); iwobj.Watermark(); } else { iwobj.Waterpos = uploadobj.WatermarkLocation; //iwobj.Height = 100; //iwobj.Width = 100; iwobj.WaterPath = Server.MapPath("~/" + uploadobj.WatermarkPic); iwobj.WaterPicturemark(); } } if (Request.Form["chkIshumbnail"] == "1") //判断是否上传的是否需生成缩略图 { MakeThumbnail(fileName, fileName + ".gif", thumbWidth, thumbHeight, "HW"); // 生成缩略图方法 } } catch (Exception ex) { ex.ToString(); } } //if (controlType == "0") // 将上传文件名加到下拉列表控件中 //{ // jsExe = "<script type=\"text/javascript\">parent.document.getElementById(\"" + elementName + "\").options[parent.document.getElementById(\"" + elementName + "\").options.length] = new Option(\"" + URL + "\", \"" + URL + "\");parent.Closed();</script>"; //} //else if (controlType == "2") // 多文件自定义系统字段 //{ // jsExe = "<script type=\"text/javascript\">parent.AddItemToMultiFile(\"" + URL + "\", \"" + elementName + "\", \"" + getSizeControl + "\", true);parent.Closed();</script>"; //} //else // 将上传文件地址附加至文本框 //{ // jsExe = "<script language='javascript'>parent.document.getElementById(\"" + elementName + "\").value=\"" + URL + "\";if(parent.document.getElementById(\"" + elementName + "_Del\") != null){parent.document.getElementById(\"" + elementName + "_Del\").disabled=false;};"; // if (!string.IsNullOrEmpty(getSizeControl) && getSizeControl != "undefined") // { // jsExe += "parent.document.getElementById(\"" + getSizeControl + "\").value=\"" + txtFileUpload.FileContent.Length + "\";"; // } // jsExe += "if(parent.document.getElementById(\"" + elementName + "_Look\") != null){parent.document.getElementById(\"" + elementName + "_Look\").disabled=false;}; parent.Closed();</script>"; //} } } }
//上传图片 public ActionResult UploadPic(int houseId, HttpPostedFileBase file) //webuploader 文件是一个个上传的, 表单名(name)是 file { //if (houseId < 5) //{ // return Json(new AjaxResult { Status = "error", ErrorMsg = "id必须大于5" }); //} //server配置上传地址 //Path.GetExtension(file.FileName)获得上传文件的扩展名 // file.SaveAs(HttpContext.Server.MapPath("~/" + houseId + Path.GetExtension(file.FileName))); //return Content("OK"); string md5 = CommonHelper.CalcMD5(file.InputStream); string ext = Path.GetExtension(file.FileName); string path = "/upload" + DateTime.Now.ToString("yyyy/MM/dd") + "/" + md5 + ext; //缩略图的路径 "_thumb" string thumbpath = "/upload" + DateTime.Now.ToString("yyyy/MM/dd") + "/" + md5 + "_thumb" + ext; //转为物理路径 string fullpath = HttpContext.Server.MapPath("~" + path); //缩略图全路径 string thumbfullpath = HttpContext.Server.MapPath("~" + thumbpath); //文件夹可能不存在的 //尝试创建可能不存在的文件夹,即使存在也不报错 new FileInfo(fullpath).Directory.Create(); file.InputStream.Position = 0;//指针复位 //保存的原图file.SaveAs(fullpath); //给大图加水印,生成缩略图 //保存缩略图 ImageProcessingJob jobThumb = new ImageProcessingJob(); jobThumb.Filters.Add(new FixedResizeConstraint(150, 150));//缩略图尺寸 200*200 jobThumb.SaveProcessedImageToFileSystem(file.InputStream, thumbfullpath); file.InputStream.Position = 0;//指针复位 //处理完缩略图指针已经到了流的末尾 //大图加水印 ImageWatermark imgWatermark = new ImageWatermark(HttpContext.Server.MapPath("~/images/watermark.png")); imgWatermark.ContentAlignment = System.Drawing.ContentAlignment.MiddleCenter; //水印位置 imgWatermark.Alpha = 50; //透明度,需要水印图片是背景透明的png图片 ImageProcessingJob jobNormal = new ImageProcessingJob(); jobNormal.Filters.Add(imgWatermark);//添加水印 //jobNormal.Filters.Add(new FixedResizeConstraint(600, 600)); //保存有水印的图片 jobNormal.SaveProcessedImageToFileSystem(file.InputStream, fullpath); //把路径写入数据库 houseService.AddNewHousePic(new HousePicDTO { HouseId = houseId, Url = path, ThumbUrl = thumbpath }); //上传图片或者删除图片房子信息改变,需要重新生成静态页面 CreateStaticPage(houseId); return(Json(new AjaxResult { Status = "ok" })); }
/// <summary> /// 图片上传的服务器 /// </summary> /// <param name="houseId">房子的id</param> /// <param name="file">图片文件(HttpPostedFileBase名字必须是file)因为报文体中form-data中的name就叫file</param> /// <returns></returns> public ActionResult UploadPic(int houseId, HttpPostedFileBase file) { /* * if (houseId < 5) * { * return Json(new AjaxResult { Status = "error", ErrorMsg = "id必须大于5" }); * }*/ //month月,minute //把接受到的file文件内容转换为md5值 string md5 = CommonHelper.CalcMD5(file.InputStream); //通过接受到的file文件取得到他的文件后缀 string ext = Path.GetExtension(file.FileName); //把上传的图片文件放在upload/年/月/日 文件夹下已文件内容的md5值做文件名最后.jpg(相对路径)避免某一个文件夹下的文件太多 string path = "/upload/" + DateTime.Now.ToString("yyyy/MM/dd") + "/" + md5 + ext;// /upload/2017/07/07/afadsfa.jpg //缩略图保存的相对路径 string thumbPath = "/upload/" + DateTime.Now.ToString("yyyy/MM/dd") + "/" + md5 + "_thumb" + ext; //拿到物理路径d://22/upload/2017/07/07/afadsfa.jpg string fullPath = HttpContext.Server.MapPath("~" + path); //缩略图的物理路径(全路径) string thumbFullPath = HttpContext.Server.MapPath("~" + thumbPath); //尝试创建可能不存在的文件夹,如果文件夹存在也不会报错 new FileInfo(fullPath).Directory.Create(); file.InputStream.Position = 0;//指针复位(保存文件长度为0,IO流读到最后一位,在算MD5值得时候) //把图片路径保存到物理路径 //file.SaveAs(fullPath);//SaveAs("d:/1.jpg"); //缩略图 ImageProcessingJob jobThumb = new ImageProcessingJob(); jobThumb.Filters.Add(new FixedResizeConstraint(200, 200));//缩略图尺寸200*200 //缩略图保存(file.InputStream流源,thumbFullPath保存到哪) jobThumb.SaveProcessedImageToFileSystem(file.InputStream, thumbFullPath); file.InputStream.Position = 0;//指针复位 //水印 ImageWatermark imgWatermark = //水印的路径 new ImageWatermark(HttpContext.Server.MapPath("~/images/watermark.jpg")); imgWatermark.ContentAlignment = System.Drawing.ContentAlignment.BottomRight; //水印位置 imgWatermark.Alpha = 50; //透明度,需要水印图片是背景透明的png图片 ImageProcessingJob jobNormal = new ImageProcessingJob(); jobNormal.Filters.Add(imgWatermark);//添加水印 //水印图片设置为600*600(如果需要原样尺寸把下面代码注释掉即可) jobNormal.Filters.Add(new FixedResizeConstraint(600, 600)); //保存有水印的图 jobNormal.SaveProcessedImageToFileSystem(file.InputStream, fullPath); //给房屋增加一个房屋图片,Url图片路径,ThumbUrl缩略图路径 houseService.AddNewHousePic(new HousePicDTO { HouseId = houseId, Url = path, ThumbUrl = thumbPath }); //CreateStaticPage(houseId);//上传了新图片或者删除图片都要重新生成html页面 return(Json(new AjaxResult { Status = "ok" })); }
void UploadFiles() { if (uploadobj.IsEnableUpload == "1") //判断是否允许上传 { HttpPostedFile file = Request.Files["upload"]; if (file.ContentLength > 0) { #region 变量 string formName = Request.QueryString["FormName"]; //表单名称 string elementName = Request.QueryString["ElementName"]; //控件名称 string saveType = Request.QueryString["SaveType"]; //保存文件名类型,1=用上传文件名保存,否则用系统时间重命名保存 string controlType = Request.QueryString["ControlType"]; //控件类型,0=select,其他为input; string noExt = SystemConst.NOT_ALLOWED_UPLOAD_TYPE; //不允许上传类型 string fileName = string.Empty; //文件名 string saveName = DateTime.Now.ToString("yyyyMMddHHmmss"); //上传文件名 string reFilePath = URL; //返回文件路径,如果保存路径填写的是绝对地址,则返回文件路径为域名+系统创建路径,如果为相对地址,则为:域名+相对路径+系统创建路径 string jsExe = string.Empty; //输出字符串 string fileExt = string.Empty; //上传文件扩展名 fileName = Path.GetFileName(file.FileName).Trim(); fileExt = Path.GetExtension(fileName).ToLower(); //上传文件扩展名 #endregion if (file.ContentLength > MaxSize) { this.ClientScript.RegisterStartupScript(this.GetType(), "alert", "<script language=\"javascript\">alert('" + Utils.GetResourcesValue("Common", "UploadErr1") + Math.Round(float.Parse(MaxSize.ToString()) / 1048576, 2) + "M!');</script>"); return; } if (SavePath.IndexOf(":") == -1) //判断输入的是虚拟路径 { SavePath = Server.MapPath(GetVirtualPath + SavePath); } if (AllowExt.IndexOf(fileExt.Replace(".", "")) == -1) { this.ClientScript.RegisterStartupScript(this.GetType(), "alert", "<script language=\"javascript\">alert('" + Utils.GetResourcesValue("Common", "UploadExtErr") + "!');</script>"); return; } if (noExt.IndexOf(fileExt) != -1) { this.ClientScript.RegisterStartupScript(this.GetType(), "alert", "<script language=\"javascript\">alert('" + Utils.GetResourcesValue("Common", "UploadExtErr1") + "!');</script>"); return; } SavePath = SavePath + "/" + DateTime.Now.Year + "/" + DateTime.Now.Month + "/"; if (!Directory.Exists(SavePath)) { Directory.CreateDirectory(SavePath); } if (saveType == "1") //使用原文件名进行保存到服务器 { int fileNameLength = fileName.LastIndexOf("."); saveName = fileName.Substring(0, fileNameLength); } fileName = SavePath + saveName + fileExt; URL = URL + DateTime.Now.Year + "/" + DateTime.Now.Month + "/" + saveName + fileExt; if (File.Exists(fileName) && saveType == "1") { this.ClientScript.RegisterStartupScript(this.GetType(), "alert", "<script language=\"javascript\">alert('" + Utils.GetResourcesValue("Common", "UploadFileExistErr") + "!');</script>"); return; } try { file.SaveAs(fileName); //保存至服务器 DelFile(); if (this.UpType == "image" && uploadobj.IsEnableWatermark == "1") //如果上传图片,则判断是否需要打水印 { ImageWatermark iwobj = new ImageWatermark(0, 0, fileName); if (uploadobj.WatermarkType == "0") //水印为文字类型 { iwobj.Quality = 100; iwobj.Title = uploadobj.WatermarkText; iwobj.FontSize = int.Parse(uploadobj.WatermarkFontSize); switch (uploadobj.WatermarkFontStyle) { case "1": iwobj.StrStyle = FontStyle.Bold; break; case "2": iwobj.StrStyle = FontStyle.Italic; break; case "4": iwobj.StrStyle = FontStyle.Underline; break; case "8": iwobj.StrStyle = FontStyle.Strikeout; break; } iwobj.FontColor = ColorTranslator.FromHtml("#" + uploadobj.WatermarkFontColor); iwobj.BackGroudColor = Color.White; iwobj.FontFamilyName = uploadobj.WatermarkFontType; iwobj.Waterpos = uploadobj.WatermarkLocation; iwobj.FontBorderColor = ColorTranslator.FromHtml("#" + uploadobj.WatermarkFontBorderColor); iwobj.FontBorderSize = int.Parse(uploadobj.WatermarkFontBorder); iwobj.Watermark(); } else { iwobj.Waterpos = uploadobj.WatermarkLocation; //iwobj.Height = 100; //iwobj.Width = 100; iwobj.WaterPath = Server.MapPath("~/" + uploadobj.WatermarkPic); iwobj.WaterPicturemark(); } } if (Request.Form["chkIshumbnail"] == "1") //判断是否上传的是否需生成缩略图 { MakeThumbnail(fileName, fileName + ".gif", int.Parse(uploadobj.ThumbnailWidth), int.Parse(uploadobj.ThumbnailHeight), "HW"); // 生成缩略图方法 } } catch (Exception ex) { ex.ToString(); } if (controlType == "0") //将上传文件名加到下拉列表控件中 { jsExe = "<script language='javascript'>var newOpt=window.opener.document.createElement(\"option\");newOpt.text=\"" + saveName + fileExt + "\";newOpt.value=\"" + URL + "\";newOpt.selected=true; window.opener.document.all." + elementName + ".options.add(newOpt); self.close();</script>"; } else if (controlType == "-1") //用showModalDialog打开上传文件,ckeditor编辑器上传用此方法 { jsExe = "<script language='javascript'>window.returnValue='" + URL + "';window.close();</script>"; } else if (controlType == "-2") { jsExe = "<script language='javascript'>window.parent.CKEDITOR.tools.callFunction(" + Request.QueryString["CKEditorFuncNum"] + ",'" + URL + "','') ;</script>"; } else { jsExe = "<script language='javascript'>tmp=eval(\"opener." + formName + "." + elementName + "\");tmp.value='" + URL + "';tmp=eval(\"opener." + formName + "." + elementName + "_Del\");if(tmp){tmp.disabled=false;};"; if (Request.QueryString["GetSizeControl"] != null && Request.QueryString["GetSizeControl"] != "") { jsExe += "tmp=eval(\"opener." + formName + "." + Request.QueryString["GetSizeControl"] + "\");tmp.value='" + file.ContentLength + "';"; } jsExe += "tmp=eval(\"opener." + formName + "." + elementName + "_Look\");if(tmp){tmp.disabled=false;}; self.close();</script>"; } Response.Write(jsExe); } } }