//public MemoryStream Resize(string path, Qualitiers qualitier) //{ // FileStream input = System.IO.File.OpenRead(path); // MemoryStream resultStream = new MemoryStream(); // if (qualitier.Height==0 && qualitier.Widht==0) // { // input.CopyTo(resultStream); // } // else // { // ImageJob job = new ImageJob(input, resultStream, new Instructions // { // Width = qualitier.Widht, // Height = qualitier.Height, // JpegQuality = qualitier.Quality, // Mode = TypesComparision.GetInstance().Convert(qualitier.Fitmode) // }); // job.Build(); // } // resultStream.Seek(0, SeekOrigin.Begin); // return resultStream; //} public MemoryStream Resize(string path, Qualitiers qualitier) { FileStream input = System.IO.File.OpenRead(path); MemoryStream resultStream = new MemoryStream(); ImageJob job; if (qualitier.Height == 0 && qualitier.Widht == 0) { job = new ImageJob(input, resultStream, new Instructions { JpegQuality = qualitier.Quality, Mode = TypesComparision.GetInstance().Convert(qualitier.Fitmode) }); } else { job = new ImageJob(input, resultStream, new Instructions { Width = qualitier.Widht, Height = qualitier.Height, JpegQuality = qualitier.Quality, Mode = TypesComparision.GetInstance().Convert(qualitier.Fitmode) }); } job.Build(); resultStream.Seek(0, SeekOrigin.Begin); return(resultStream); }
public async Task <string> UploadPublicPictureCompresser() { HttpFileCollection filecol = HttpContext.Current.Request.Files; PictureValidation.GetInstance().CompleteValidations(filecol); string uploadPath = PictureHandling.GetInstance().HandlingUpdatePublicDirectories(); var multipartFormDataStreamProvider = new UploadMultipartFormProvider(uploadPath); await Request.Content.ReadAsMultipartAsync(multipartFormDataStreamProvider); string _localFileName = multipartFormDataStreamProvider .FileData.Select(multiPartData => multiPartData.LocalFileName).FirstOrDefault(); string withoutextension = _localFileName.Split('.')[0]; #region Qualitier var qualitiesparam = HttpContext.Current.Request.Params["qualitier"]; Qualitiers q = JsonConvert.DeserializeObject <Qualitiers>(qualitiesparam); #endregion using (System.IO.MemoryStream ms = PictureHandling.GetInstance().Resize(_localFileName, q)) { ////with no compress; //Image img = System.Drawing.Image.FromStream(ms); //img.Save(withoutextension + "-th" + ".jpg"); //with compress; Image img = System.Drawing.Image.FromStream(ms); EncoderParameters eps = new EncoderParameters(1); eps.Param[0] = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, 90L); string mimetype = GetMimeType(new System.IO.FileInfo(_localFileName).Extension); ImageCodecInfo ici = GetEncoderInfo(mimetype); img.Save(withoutextension + "-th" + ".jpg", ici, eps); } return(JsonConvert.SerializeObject(new FileResult { FileName = Path.GetFileName(_localFileName), FileLength = new FileInfo(_localFileName).Length, LocalFilePath = Cryptography.Encrypt(_localFileName), })); }