public static ThumbnailInfo MakeThumbnail(Bitmap origin, ImageMeta meta, ExifOrientations orientation, string attachmentId, Driver driver, string origFileName) { Bitmap thumbnail = null; if (meta == ImageMeta.Square) { thumbnail = MakeSquareThumbnail(origin); } else { thumbnail = ImageHelper.ScaleBasedOnLongSide(origin, (int)meta); } try { if (orientation != ExifOrientations.Unknown) { ImageHelper.CorrectOrientation(orientation, thumbnail); } else { ImageHelper.CorrectOrientation(ImageHelper.ImageOrientation(origin), thumbnail); } } catch (System.Runtime.InteropServices.ExternalException ex) { logger.ErrorFormat("Unable to correct orientation of image {0}", origFileName); logger.Error("External exception", ex); } ImageSaveStrategy imageStrategy = GetImageSaveStrategy(Path.GetExtension(origFileName)); SavedResult savedThumbnail = imageStrategy.Save(thumbnail, attachmentId, meta, driver); return(new ThumbnailInfo { saved_file_name = savedThumbnail.FileName, file_name = origFileName, width = thumbnail.Width, height = thumbnail.Height, file_size = savedThumbnail.SavedRawData.Length, mime_type = savedThumbnail.MimeType, modify_time = DateTime.UtcNow, url = "/v2/attachments/view/?object_id=" + attachmentId + "&image_meta=" + meta.ToString().ToLower(), RawData = savedThumbnail.SavedRawData }); }
public SavedResult Save(Bitmap img, string attchId, ImageMeta meta, Driver driver) { using (MemoryStream m = new MemoryStream()) { img.Save(m, ImageFormat.Png); SavedResult savedResult = new SavedResult { SavedRawData = m.ToArray(), FileName = string.Format("{0}_{1}.png", attchId, meta.ToString().ToLower()), MimeType = "image/png" }; new FileStorage(driver).SaveFile(savedResult.FileName, new ArraySegment <byte>(savedResult.SavedRawData)); return(savedResult); } }
public SavedResult Save(Bitmap img, string attchId, ImageMeta meta, Driver driver) { using (MemoryStream m = new MemoryStream()) { EncoderParameters encodeParams = new EncoderParameters(1); encodeParams.Param[0] = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, (long)85); img.Save(m, ImageHelper.JpegCodec, encodeParams); SavedResult savedResult = new SavedResult { SavedRawData = m.ToArray(), FileName = string.Format("{0}_{1}.jpeg", attchId, meta.ToString().ToLower()), MimeType = "image/jpeg" }; new FileStorage(driver).SaveFile(savedResult.FileName, new ArraySegment <byte>(savedResult.SavedRawData)); return(savedResult); } }