Ejemplo n.º 1
0
        public JsonResult ReadImageFromPath(string path)
        {
            try
            {
                WorkingImageExtension = Path.GetExtension(path).ToLower();

                byte[] image;
                image = GetImageFromServer(path);

                WorkingImageId = Guid.NewGuid();
                MemoryStream ms           = new MemoryStream(image);
                Image        workingImage = Image.FromStream(ms);

                WorkingImage = ImageHelperNew.ImageToByteArray(workingImage);

                return(Json(WorkingImageId));
            }
            catch (Exception ex)
            {
                string errorMsg = string.Format("Error cropping image: {0}", ex.Message);
                Response.StatusCode = 500;
                Response.Write(errorMsg);
                return(Json(string.Empty));
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Processes the uploaded image.
        /// </summary>
        /// <param name="uploadedFileMeta">The uploaded file meta.</param>
        /// <returns>Image Id</returns>
        private Guid ProcessUploadedImage(MediaAssetUploadModel uploadedFileMeta)
        {
            // Get the file extension
            WorkingImageExtension = Path.GetExtension(uploadedFileMeta.Filename).ToLower();
            string[] allowedExtensions = { ".png", ".jpeg", ".jpg", ".gif" }; // Make sure it is an image that can be processed
            if (allowedExtensions.Contains(WorkingImageExtension))
            {
                WorkingImageId = Guid.NewGuid();
                Image workingImage = new Bitmap(uploadedFileMeta.fileData.InputStream);
                WorkingImage = ImageHelperNew.ImageToByteArray(workingImage);
            }
            else
            {
                throw new Exception("Cannot process files of this type.");
            }

            return(WorkingImageId);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Modifies an image image.
        /// </summary>
        /// <param name="x">The x.</param>
        /// <param name="y">The y.</param>
        /// <param name="w">The w.</param>
        /// <param name="h">The h.</param>
        /// <param name="modType">Type of the mod. Crop or Resize</param>
        /// <returns>New Image Id</returns>
        private string ModifyImage(int x, int y, int w, int h, ImageModificationType modType, bool?withextension)
        {
            ModifiedImageId = Guid.NewGuid();
            Image img = ImageHelperNew.ByteArrayToImage(WorkingImage);
            int   genislik, yukseklik;

            if (Session["UploadType"] == null)
            {
                genislik  = Convert.ToInt32(Session["_minwidth2"].ToString());
                yukseklik = Convert.ToInt32(Session["_minheight2"].ToString());
            }
            else
            {
                genislik  = Convert.ToInt32(Session["_minwidth"].ToString());
                yukseklik = Convert.ToInt32(Session["_minheight"].ToString());
            }

            using (System.Drawing.Bitmap _bitmap = new System.Drawing.Bitmap(genislik, yukseklik))
            {
                _bitmap.SetResolution(img.HorizontalResolution, img.VerticalResolution);
                using (Graphics _graphic = Graphics.FromImage(_bitmap))
                {
                    _graphic.InterpolationMode  = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
                    _graphic.SmoothingMode      = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
                    _graphic.PixelOffsetMode    = System.Drawing.Drawing2D.PixelOffsetMode.HighQuality;
                    _graphic.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;

                    if (modType == ImageModificationType.Crop)
                    {
                        //_graphic.DrawImage(img, 0, 0, w, h);
                        //_graphic.DrawImage(img, new Rectangle(0, 0, w, h), x, y, w, h, GraphicsUnit.Pixel);

                        // Aşağıdaki kodu ben ekliyorum. Crop işleminden sonra resize etmek için..


                        _graphic.DrawImage(img, new Rectangle(0, 0, genislik, yukseklik), x, y, w, h, GraphicsUnit.Pixel);
                    }
                    else if (modType == ImageModificationType.Resize)
                    {
                        _graphic.DrawImage(img, 0, 0, img.Width, img.Height);
                        _graphic.DrawImage(img, new Rectangle(0, 0, W_FixedSize, H_FixedSize), 0, 0, img.Width, 0, GraphicsUnit.Pixel);
                    }

                    string extension = WorkingImageExtension;

                    // If the image is a gif file, change it into png
                    if (extension.EndsWith("gif", StringComparison.OrdinalIgnoreCase))
                    {
                        extension = ".png";
                    }

                    using (EncoderParameters encoderParameters = new EncoderParameters(1))
                    {
                        encoderParameters.Param[0] = new EncoderParameter(Encoder.Quality, 100L);
                        ModifiedImage = ImageHelperNew.ImageToByteArray(_bitmap, extension, encoderParameters);
                    }
                }
            }

            Image CoreppedImg = ImageHelperNew.ByteArrayToImage(ModifiedImage);

            //CoreppedImg.Save(Server.MapPath("/Content/images/userfiles/newbig/" + ModifiedImageId + WorkingImageExtension));
            //CoreppedImg.Save(Server.MapPath("/Content/images/userfiles/news/" + ModifiedImageId));

            if (withextension == false)
            {
                CoreppedImg.Save(Server.MapPath("/Content/images/userfiles/news/" + ModifiedImageId));
            }
            else
            {
                CoreppedImg.Save(Server.MapPath("/Content/images/userfiles/news/" + ModifiedImageId + WorkingImageExtension));
            }
            return(ModifiedImageId.ToString());
        }