コード例 #1
0
ファイル: ImgHelper.cs プロジェクト: PirateX0/ZSZ
        public static void GenerateProcessedImage()
        {
            ImageProcessingJob jobNormal = new ImageProcessingJob();

            jobNormal.Filters.Add(new FixedResizeConstraint(200, 200));//限制图片的大小,避免生成大图。如果想原图大小处理,就不用加这个Filter
            jobNormal.SaveProcessedImageToFileSystem(@"C:\Program Files\longCode\LongRoom\Long.Test\img\dalong.png", @"C:\Program Files\longCode\LongRoom\Long.Test\img\dalong2.png");
        }
コード例 #2
0
        /// <summary>
        /// 生成缩略图
        /// </summary>
        /// <param name="fileName"></param>
        public static void BuildThumbnail(string sourceFileName, string targetFileName)
        {
            ImageProcessingJob jobThumb = new ImageProcessingJob();

            jobThumb.Filters.Add(new FixedResizeConstraint(20, 20));                                               //缩略图尺寸
            jobThumb.SaveProcessedImageToFileSystem(sourceFileName, targetFileName, new BmpFormatEncoderParams()); //第一个参数可以是string文件名,也可以是流
        }
コード例 #3
0
        private string SaveImg(byte[] imgBytes, string ext)
        {
            string md5  = CommonHelper.GetMD5(imgBytes);
            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(517, 216));//限制图片的大小,避免生成
            //jobNormal.SaveProcessedImageToFileSystem(file.InputStream, fullPath);
            jobNormal.SaveProcessedImageToFileSystem(imgBytes, fullPath);
            return(path);
        }
コード例 #4
0
        /// <summary>
        /// 生成缩略图
        /// install- Package CodeCarvings.Piczard
        /// </summary>
        /// <param name="path">原图路径</param>
        /// <param name="path2">保存路径</param>
        /// <param name="newName">缩略图名称</param>
        public static void GetImagePro(string path, string path2, string newName)
        {
            ImageProcessingJob job = new ImageProcessingJob();

            job.Filters.Add(new FixedResizeConstraint(200, 200));
            job.SaveProcessedImageToFileSystem(path, path2 + @"\" + newName + ".png");
        }
コード例 #5
0
    protected void LoadImageIntoPictureTrimmer(bool resetSelection)
    {
        // Pre-process the image
        ImageProcessingJob job = this.GetImagePreProcessingJob();

        using (System.Drawing.Bitmap preProcessedImage = job.GetProcessedImage(SourceImageFileName))
        {
            // Backup the previous userState
            PictureTrimmerUserState previousUserState = null;
            if (this.InlinePictureTrimmer1.ImageLoaded)
            {
                previousUserState = this.InlinePictureTrimmer1.UserState;
            }

            // Load the pre-processed image into the PictureTrimmer control
            this.InlinePictureTrimmer1.LoadImage(preProcessedImage, new FreeCropConstraint(null, 600, null, 600));

            if (previousUserState != null)
            {
                if (resetSelection)
                {
                    // Re-calculate the cropping rectangle
                    previousUserState.Value.ImageSelection.Crop.Rectangle = null;
                    // Re-center the image
                    previousUserState.UIParams.PictureScrollH = null;
                    previousUserState.UIParams.PictureScrollV = null;
                }

                // Restore the previous user state
                this.InlinePictureTrimmer1.UserState = previousUserState;
            }
        }
    }
コード例 #6
0
ファイル: ActivityController.cs プロジェクト: 080779/Activity
        public ActionResult PicUpload(long urlId, 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);

            return(Json(new AjaxResult {
                Status = "success", Data = path
            }));
        }
コード例 #7
0
ファイル: Image.cs プロジェクト: AmayerGogh/KuMaDao
        private ImageProcessingJob CreateJob(int imgX, int imgY)
        {
            ImageProcessingJob job = new ImageProcessingJob();

            job.Filters.Add(new FixedResizeConstraint(imgX, imgY));

            return(job);
        }
コード例 #8
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");
        }
コード例 #9
0
ファイル: Program.cs プロジェクト: xingforever/HLX.ZSZ
        //缩略图一
        static void Thumbnail()
        {
            ImageProcessingJob job = new ImageProcessingJob();

            job.Filters.Add(new FixedResizeConstraint(200, 200));
            job.SaveProcessedImageToFileSystem(@"E:\Program\NET高级培训\NET掌上租\TEST\Image\1.jpg", @"E:\Program\NET高级培训\NET掌上租\TEST\Image\2.jpg",
                                               new JpegFormatEncoderParams());

            //job.SaveProcessedImageToStream();
        }
コード例 #10
0
ファイル: Image.cs プロジェクト: AmayerGogh/KuMaDao
        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");
        }
コード例 #11
0
ファイル: ImgHelper.cs プロジェクト: PirateX0/ZSZ
        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");
        }
コード例 #12
0
ファイル: Program.cs プロジェクト: xingforever/HLX.ZSZ
        //水印
        //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");
        }
コード例 #13
0
        private string SaveImg(byte[] imgBytes, string ext)
        {
            string md5      = CommonHelper.GetMD5(imgBytes);
            string path     = "/upload/" + DateTime.Now.ToString("yyyy/MM/dd") + "/" + md5 + ext;
            string fullPath = HttpContext.Server.MapPath("" + path);

            new FileInfo(fullPath).Directory.Create();
            ImageProcessingJob jobNormal = new ImageProcessingJob();

            jobNormal.Filters.Add(new FixedResizeConstraint(640, 308));//限制图片的大小,避免生成
            jobNormal.SaveProcessedImageToFileSystem(imgBytes, fullPath);
            return(path);
        }
コード例 #14
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"
            }));
        }
コード例 #15
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文件名,也可以是流
        }
コード例 #16
0
        private async Task WorkImage(ImageProcessingJob job)
        {
            var fileHandler = new MongoDbFileHandler(_imageDbConnectionString);
            var sourcefile  = await fileHandler.GetMessageObject <DtoImage>(job.Id);

            var outputfile = AddOverlay(sourcefile, job.Overlay, job.Resolution);
            var id         = await fileHandler.SaveMessageObject(outputfile);

            foreach (var successor in job.Successors)
            {
                successor.Id = id;
                await _bus.PublishAsync(successor.GetType(), successor);
            }
        }
コード例 #17
0
ファイル: ImageHelper.cs プロジェクト: 080779/USystem
        public static string SaveByte(Stream stream)
        {
            byte[] files    = StreamToBytes(stream);
            string md5      = CommonHelper.GetMD5(files);
            string path     = "/upload/" + DateTime.Now.ToString("yyyy") + "/" + md5 + ".jpeg";
            string fullPath = HttpContext.Current.Server.MapPath("~" + path);

            new FileInfo(fullPath).Directory.Create();
            //file.SaveAs(fullPath);
            //缩略图
            ImageProcessingJob jobNormal = new ImageProcessingJob();

            jobNormal.SaveProcessedImageToFileSystem(files, fullPath);
            return(path);
        }
コード例 #18
0
ファイル: ImageHelper.cs プロジェクト: 080779/USystem
        public static string SaveImage(HttpPostedFileBase file)
        {
            string md5      = CommonHelper.GetMD5(file.InputStream);
            string ext      = Path.GetExtension(file.FileName);
            string path     = "/upload/" + DateTime.Now.ToString("yyyy") + "/" + md5 + ext;
            string fullPath = HttpContext.Current.Server.MapPath("~" + path);

            new FileInfo(fullPath).Directory.Create();
            //file.SaveAs(fullPath);
            //缩略图
            file.InputStream.Position = 0;
            ImageProcessingJob jobNormal = new ImageProcessingJob();

            jobNormal.SaveProcessedImageToFileSystem(file.InputStream, fullPath);
            return(path);
        }
コード例 #19
0
    protected void btnProcessImage_Click(object sender, EventArgs e)
    {
        // Process the image

        // Get the image processing job
        ImageProcessingJob job = this.InlinePictureTrimmer1.GetImageProcessingJob();

        // Add the filters
        job.Filters.Add(DefaultColorFilters.Grayscale);                                                           // Grayscale
        job.Filters.Add(new ImageWatermark(WatermarkImageFileName, System.Drawing.ContentAlignment.BottomRight)); // Watermark

        // Save the image
        job.SaveProcessedImageToFileSystem(SourceImageFileName, OutputImageFileName);

        // Display the output image
        this.InlinePictureTrimmer1.OnClientControlLoadFunction = "displayOutputImage";
    }
コード例 #20
0
ファイル: ImageHelper.cs プロジェクト: 080779/USystem
        public static bool SaveBase64(string file, out string res)
        {
            if (!file.Contains(";base64"))
            {
                res = "不是base64图片文件";
                return(false);
            }
            string[] strs    = file.Split(',');
            string[] formats = strs[0].Replace(";base64", "").Split(':');
            string   img     = strs[1];
            string   format  = formats[1];

            string[] imgFormats = { "image/png", "image/jpg", "image/jpeg", "image/bmp", "IMAGE/PNG", "IMAGE/JPG", "IMAGE/JPEG", "IMAGE/BMP" };

            if (!imgFormats.Contains(format))
            {
                res = "请选择正确的图片格式,支持png、jpg、jpeg、png格式";
                return(false);
            }
            string ext = "." + format.Split('/')[1];

            byte[] imgBytes = null;
            try
            {
                imgBytes = Convert.FromBase64String(img);
            }
            catch (Exception ex)
            {
                res = "base64图片文件解码错误";
                return(false);
            }

            string md5      = CommonHelper.GetMD5(imgBytes);
            string path     = "/upload/" + DateTime.Now.ToString("yyyy") + "/" + md5 + ext;
            string fullPath = HttpContext.Current.Server.MapPath("~" + path);

            new FileInfo(fullPath).Directory.Create();

            //Install-Package CodeCarvings.Piczard
            ImageProcessingJob jobNormal = new ImageProcessingJob();

            jobNormal.SaveProcessedImageToFileSystem(imgBytes, fullPath);
            res = path;
            return(true);
        }
コード例 #21
0
ファイル: ActivityController.cs プロジェクト: 080779/Activity
        public string PicSave(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 fullPath = HttpContext.Server.MapPath("~" + path);

            new FileInfo(fullPath).Directory.Create();
            ImageProcessingJob jobNormal = new ImageProcessingJob();

            //FixedAspectRatioCropConstraint constraint = new FixedAspectRatioCropConstraint(1.0f);//宽高比
            //constraint.LimitedDimension = SizeDimension.Height;//是限制宽度还是限制高度(Height为限制高度,Width为限制宽度)
            //constraint.Min = 50;//最小50像素(根据LimitedDimension确定是限定宽度还是高度)
            //constraint.Max = 200;//最大200像素(根据LimitedDimension确定是限定宽度还是高度)
            jobNormal.Filters.Add(new FixedResizeConstraint(512, 512));//限制图片的大小,避免生成
            jobNormal.SaveProcessedImageToFileSystem(file.InputStream, fullPath);
            return(path);
        }
コード例 #22
0
ファイル: NewsController.cs プロジェクト: 080779/NewSDMS
        public ActionResult UpImg(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 fullPath = HttpContext.Server.MapPath("~" + path);

            new FileInfo(fullPath).Directory.Create();

            file.InputStream.Position = 0;
            ImageProcessingJob jobNormal = new ImageProcessingJob();

            //jobNormal.Filters.Add(new FixedResizeConstraint(750, 1334));//限制图片的大小,避免生成
            jobNormal.SaveProcessedImageToFileSystem(file.InputStream, fullPath);
            string[] paths = { path };

            return(Json(new { errno = "0", Data = paths }));
        }
コード例 #23
0
        private static void Main(string[] args)
        {
            //Console.WriteLine("123".CalcMd5());
            //Console.WriteLine(CommonHelper.GenerateCaptchaCode(5));

            #region 邮件发送

            //using (MailMessage mailMessage = new MailMessage())
            //using (SmtpClient smtpClient = new SmtpClient("smtp.163.com"))
            //{
            //    mailMessage.To.Add("*****@*****.**");
            //    mailMessage.To.Add("*****@*****.**");
            //    mailMessage.Body = "邮件正文";
            //    mailMessage.From = new MailAddress("*****@*****.**");
            //    mailMessage.Subject = "邮件标题";
            //    smtpClient.Credentials = new System.Net.NetworkCredential("*****@*****.**", "123qweasdzxc");//如果启用了“客户端授权码”,要用授权码代替密码
            //    smtpClient.Send(mailMessage);
            //}

            #endregion 邮件发送

            #region 生成缩略图

            ImageProcessingJob job = new ImageProcessingJob();
            job.Filters.Add(new FixedResizeConstraint(200, 200));
            job.SaveProcessedImageToFileSystem(@"G:\私活项目\07微信公众号\优而思校长在线\src\Tests\Yers.AllTests\images\fengjin.jpg", @"G:\私活项目\07微信公众号\优而思校长在线\src\Tests\Yers.AllTests\images\fengjin-new.jpg");

            #endregion 生成缩略图

            #region 测试数据库

            /*
             * using (YersDbContext db = new YersDbContext())
             * {
             *  db.Database.Delete();
             *  db.Database.Create();
             * }*/

            #endregion 测试数据库

            Console.WriteLine("OK");
            Console.ReadKey();
        }
コード例 #24
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_106.jpg";

        // Get the image processing job for the specified resolution
        ImageProcessingJob job = new ImageProcessingJob(float.Parse(this.ddlOutputResolution.SelectedValue, System.Globalization.CultureInfo.InvariantCulture));

        // Setup a crop constraint
        switch (this.ddlCropSize.SelectedIndex)
        {
        case 0:
            // 200 x 300 px
            job.Filters.Add(new FixedCropConstraint(200, 300));
            break;

        case 1:
            // 50 x 75 points
            job.Filters.Add(new FixedCropConstraint(GfxUnit.Point, 50, 75));
            break;

        case 2:
            // 20 x 30 mm
            job.Filters.Add(new FixedCropConstraint(GfxUnit.Mm, 20, 30));
            break;

        case 3:
            // 0.6 x 0.9 inch
            job.Filters.Add(new FixedCropConstraint(GfxUnit.Inch, 0.6F, 0.9F));
            break;
        }

        // Proces the image
        job.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();

        // Display the generated image
        this.phOutputContainer.Visible = true;
    }
コード例 #25
0
        /// <summary>
        /// <inheritdoc />
        /// </summary>
        public MagickImage Process(ImageProcessingJob job)
        {
            try
            {
                // Check if both sizes are valid.
                Guard.Against.PositiveCondition(job.ThumbnailParams.Width == null && job.ThumbnailParams.Height == null);

                // Clone a source image
                var image = (MagickImage)job.Image.Clone();

                // If any parameter of Resize function == 0 then another size will be used in respect with aspect ratio
                var imageSize = new MagickGeometry(job.ThumbnailParams.Width ?? 0, job.ThumbnailParams.Height ?? 0)
                {
                    IgnoreAspectRatio = job.ThumbnailParams.IsFixedSize
                };

                image.Interpolate = PixelInterpolateMethod.Bilinear;

                // Resize the image
                image.Resize(imageSize);

                // Check if any effect was requested and apply it if so
                if (job.ThumbnailParams.Effect.HasValue)
                {
                    ApplyEffect(image, job.ThumbnailParams.Effect.Value);
                }

                // Remove image metadata if such setting is set
                if (!job.Settings.KeepMetadata ?? true)
                {
                    image.Strip();
                }

                return(image);
            }
            catch (Exception ex)
            {
                this.logger.LogError(ex, ex.Message);
                throw new AppFlowException(AppFlowExceptionType.GenericError);
            }
        }
コード例 #26
0
ファイル: ActivityController.cs プロジェクト: 080779/Activity
        public string BackImgSave(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 fullPath = HttpContext.Server.MapPath("~" + path);

            new FileInfo(fullPath).Directory.Create();
            ImageProcessingJob jobNormal = new ImageProcessingJob();

            FixedAspectRatioCropConstraint constraint = new FixedAspectRatioCropConstraint(750 / 1334f); //宽高比

            constraint.LimitedDimension = SizeDimension.Width;                                           //是限制宽度还是限制高度(Height为限制高度,Width为限制宽度)
            constraint.Min = 600;                                                                        //最小50像素(根据LimitedDimension确定是限定宽度还是高度)
            constraint.Max = 900;                                                                        //最大200像素(根据LimitedDimension确定是限定宽度还是高度)
            //constraint.DefaultImageSelectionStrategy = CropConstraintImageSelectionStrategy.WholeImage;// 来保证显示原图全部内容,不裁剪。

            jobNormal.Filters.Add(constraint);//限制图片的大小,避免生成
            jobNormal.SaveProcessedImageToFileSystem(file.InputStream, fullPath);
            return(path);
        }
コード例 #27
0
 public string[] UploadFiles(HttpPostedFileBase file, string url)
 {
     if (!file.FileName.Equals(""))
     {
         Random r       = new Random();
         var    newName = DateTime.Now.ToString("yyyyMMddHHmmss")
                          + r.Next(1000, 10000)
                          + file.FileName.Substring(file.FileName.LastIndexOf('.'));
         var path = Server.MapPath(url + newName);
         file.SaveAs(path);                                 // 保存的正常大小的图片
         ImageProcessingJob job = new ImageProcessingJob(); // 实例化第三方缩略图插件
         job.Filters.Add(new FixedResizeConstraint(24, 24));
         var smName = newName.Substring(0, newName.LastIndexOf('.'))
                      + "_sm"
                      + newName.Substring(newName.LastIndexOf('.'));
         var smPath = Server.MapPath(url + smName);
         job.SaveProcessedImageToFileSystem(path, smPath);
         return(new string[] { newName, smName });
     }
     return(new string[] { "default.jpeg", "default.png" });
 }
コード例 #28
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"
            }));
        }
コード例 #29
0
ファイル: HouseController.cs プロジェクト: carlsonsoft/ZSZ
        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"
            }));
        }
コード例 #30
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"
            }));
        }
コード例 #31
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_106.jpg";

        // Get the image processing job for the specified resolution
        ImageProcessingJob job = new ImageProcessingJob(float.Parse(this.ddlOutputResolution.SelectedValue, System.Globalization.CultureInfo.InvariantCulture));

        // Setup a crop constraint
        switch (this.ddlCropSize.SelectedIndex)
        {
            case 0:
                // 200 x 300 px
                job.Filters.Add(new FixedCropConstraint(200, 300));
                break;
            case 1:
                // 50 x 75 points
                job.Filters.Add(new FixedCropConstraint(GfxUnit.Point, 50, 75));
                break;
            case 2:
                // 20 x 30 mm
                job.Filters.Add(new FixedCropConstraint(GfxUnit.Mm, 20, 30));
                break;
            case 3:
                // 0.6 x 0.9 inch
                job.Filters.Add(new FixedCropConstraint(GfxUnit.Inch, 0.6F, 0.9F));
                break;
        }

        // Proces the image
        job.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();

        // Display the generated image
        this.phOutputContainer.Visible = true;
    }
コード例 #32
0
    protected ImageProcessingJob GetImagePreProcessingJob()
    {
        ImageProcessingJob job = new ImageProcessingJob();

        // Set the back color
        job.ImageBackColor.Value = this.InlinePictureTrimmer1.ImageBackColor.Clone();

        // Add the color filter
        switch (this.ddlDefaultColorFilters.SelectedIndex)
        {
            case 0:
                // No color filter
                break;
            case 1:
                // Grayscale
                job.Filters.Add(DefaultColorFilters.Grayscale);
                break;
            case 2:
                // Sepia
                job.Filters.Add(DefaultColorFilters.Sepia);
                break;
            case 3:
                // Invert
                job.Filters.Add(DefaultColorFilters.Invert);
                break;
        }

        // Add the rotation filter
        float rotationAngle = float.Parse(this.ddlRotationAngle.SelectedValue, System.Globalization.CultureInfo.InvariantCulture);
        job.Filters.Add(new MyRotationFilter(rotationAngle));

        return job;
    }
コード例 #33
0
    protected void processImages()
    {
        // Delete the previously generated files
        string[] oldOutputImages = System.IO.Directory.GetFiles(Server.MapPath(OutputImagesFolder));
        foreach (string oldOutputImage in oldOutputImages)
        {
            System.IO.File.Delete(oldOutputImage);
        }

        // Create a new image processing job
        ImageProcessingJob job = new ImageProcessingJob();

        if (this.cbFilterCrop.Checked)
        {
            // Add the crop filter
            job.Filters.Add(new FixedCropConstraint(380, 320));
        }

        if (this.cbFilterColor.Checked)
        {
            job.Filters.Add(DefaultColorFilters.Sepia);
        }

        if (this.cbFilterWatermark.Checked)
        {
            // Add the watermark
            TextWatermark textWatermark = new TextWatermark();
            textWatermark.ContentAlignment = ContentAlignment.BottomRight;
            textWatermark.ForeColor = Color.FromArgb(230, Color.Black);
            textWatermark.Text = "Image processed by Piczard";
            textWatermark.Font.Size = 12;
            job.Filters.Add(textWatermark);
        }

        // Get the files to process
        string[] sourceImages = System.IO.Directory.GetFiles(Server.MapPath(SourceImagesFolder));

        for (int i = 0; i < sourceImages.Length; i++)
        {
            string sourceFilePath = sourceImages[i];
            string sourceFileNameWithoutExtension = System.IO.Path.GetFileNameWithoutExtension(sourceFilePath);

            // Get the output image format
            FormatEncoderParams outputFormat;
            if (this.rbFormatCustom.Checked)
            {
                // Custom format
                outputFormat = ImageArchiver.GetFormatEncoderParamsFromFileExtension(this.ddlImageFormat.SelectedValue);
            }
            else
            {
                // Same format as the source image
                outputFormat = ImageArchiver.GetFormatEncoderParamsFromFilePath(sourceFilePath);
            }

            string outputFileName = sourceFileNameWithoutExtension + outputFormat.FileExtension;
            string outputFilePath = System.IO.Path.Combine(OutputImagesFolder, outputFileName);

            // Process the image
            job.SaveProcessedImageToFileSystem(sourceFilePath, outputFilePath);            
        }
    }