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)); } }
/// <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); }
/// <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()); }