Exemple #1
0
        /// <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);
            }
        }
Exemple #2
0
        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);
            }
        }
Exemple #3
0
    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();
    }
Exemple #4
0
        /// <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);
        }
Exemple #5
0
        /// <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");
        }
Exemple #6
0
        //水印
        //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");
        }
Exemple #7
0
        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");
        }
Exemple #8
0
        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");
        }
Exemple #9
0
        /// <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);
            }
        }
Exemple #10
0
        /// <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文件名,也可以是流
        }
Exemple #11
0
    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;
    }
Exemple #12
0
        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"
            }));
        }
    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;
    }
Exemple #14
0
        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);
        }
Exemple #17
0
        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"
            }));
        }
Exemple #18
0
        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"
            }));
        }
Exemple #19
0
        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"));
        }
Exemple #20
0
        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"
            }));
        }
Exemple #21
0
        //处理图片的上传请求
        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"
            }));
        }
Exemple #22
0
        /// <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);
            }
        }
Exemple #23
0
        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"
            }));
        }
Exemple #26
0
        /// <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"
            }));
        }
    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();
    }
Exemple #28
0
        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);
                }
            }
        }