public byte[] FetchResizedImage(ImageData.Image img, int w, int h) { var istream = new MemoryStream(img.Bits); var img1 = System.Drawing.Image.FromStream(istream); var ratio = Math.Min(w / (double)img1.Width, h / (double)img1.Height); if (ratio >= 1) // image is smaller than requested { ratio = 1; // same size } w = Convert.ToInt32(ratio * img1.Width); h = Convert.ToInt32(ratio * img1.Height); var img2 = new System.Drawing.Bitmap(img1, w, h); var ostream = new MemoryStream(); img2.Save(ostream, ImageFormat.Jpeg); var Bits = ostream.GetBuffer(); var Length = Bits.Length; img1.Dispose(); img2.Dispose(); istream.Close(); ostream.Close(); return(Bits); }
public ImageData.Image GetImage() { ImageData.Image i = null; try { i = ImageData.DbUtil.Db.Images.SingleOrDefault(ii => ii.Id == ImageId); } catch { } return(i); }
public override void ExecuteResult(ControllerContext context) { context.HttpContext.Response.Clear(); context.HttpContext.Response.Cache.SetExpires(DateTime.Now.AddYears(1)); context.HttpContext.Response.Cache.SetCacheability(HttpCacheability.Public); if (id == -2) { context.HttpContext.Response.ContentType = "image/jpeg"; context.HttpContext.Response.BinaryWrite(NoPic2()); } else if (id == -1) { context.HttpContext.Response.ContentType = "image/jpeg"; context.HttpContext.Response.BinaryWrite(NoPic1()); } else if (id == -3) { context.HttpContext.Response.ContentType = "image/jpeg"; context.HttpContext.Response.BinaryWrite(NoPic3()); } else { ImageData.Image i = null; try { i = ImageData.DbUtil.Db.Images.SingleOrDefault(ii => ii.Id == id); } catch (Exception) { } if (i == null || i.Secure == true) { if (nodefault) { return; } if (portrait) { context.HttpContext.Response.ContentType = "image/jpeg"; context.HttpContext.Response.BinaryWrite(tiny ? NoPic1() : NoPic2()); } else { NoPic(context.HttpContext); } } else { if (w.HasValue && h.HasValue) { context.HttpContext.Response.ContentType = "image/jpeg"; var ri = FetchResizedImage(i, w.Value, h.Value, mode); context.HttpContext.Response.BinaryWrite(ri); } else { context.HttpContext.Response.ContentType = i.Mimetype ?? "image/jpeg"; context.HttpContext.Response.BinaryWrite(i.Bits); } } } }
public ActionResult FetchImage(string data) { // Authenticate first if (!Auth()) { return(BaseMessage.createErrorReturn("Authentication failed, please try again", BaseMessage.API_ERROR_INVALID_CREDENTIALS)); } BaseMessage dataIn = BaseMessage.createFromString(data); CheckInFetchImage cifi = JsonConvert.DeserializeObject <CheckInFetchImage>(dataIn.data); BaseMessage br = new BaseMessage(); if (cifi.id == 0) { return(br.setData("The ID for the person cannot be set to zero")); } br.data = "The picture was not found."; var person = DbUtil.Db.People.SingleOrDefault(pp => pp.PeopleId == cifi.id); if (person.PictureId != null) { ImageData.Image image = null; switch (cifi.size) { case 0: // 50 x 50 image = ImageData.DbUtil.Db.Images.SingleOrDefault(i => i.Id == person.Picture.ThumbId); break; case 1: // 120 x 120 image = ImageData.DbUtil.Db.Images.SingleOrDefault(i => i.Id == person.Picture.SmallId); break; case 2: // 320 x 400 image = ImageData.DbUtil.Db.Images.SingleOrDefault(i => i.Id == person.Picture.MediumId); break; case 3: // 570 x 800 image = ImageData.DbUtil.Db.Images.SingleOrDefault(i => i.Id == person.Picture.LargeId); break; } if (image != null) { br.data = Convert.ToBase64String(image.Bits); br.count = 1; br.setNoError(); } } return(br); }
private void WriteDbImage(ControllerContext context) { ImageData.Image image = null; try { if (GrantPermission(id)) { using (var db = ImageData.CMSImageDataContext.Create(context.HttpContext)) { image = db.Images.SingleOrDefault(ii => ii.Id == id); } } else { (new HttpUnauthorizedResult()).ExecuteResult(context); return; } } catch { } if (image.IsNull() || (shouldBePublic && image?.IsPublic == false)) { WritePng(context, NoPic()); } else if (image?.Secure == true) { if (nodefault) { return; } if (portrait) { WriteJpeg(context, tiny ? NoPic1() : NoPic2()); } else { WritePng(context, NoPic()); } } else { if (w.HasValue && h.HasValue) { var ri = FetchResizedImage(image, w.Value, h.Value, mode); WriteJpeg(context, ri); } else { WriteImage(context, image.Mimetype ?? "image/jpeg", image.Bits); } } }
private void loadPicture() { CmsData.Family family = CmsData.DbUtil.Db.Families.SingleOrDefault(f => f.FamilyId == id); if (family == null || family.Picture == null) { return; } ImageData.Image image = ImageData.DbUtil.Db.Images.SingleOrDefault(i => i.Id == family.Picture.SmallId); if (image != null) { picture = Convert.ToBase64String(image.Bits); } }
private void loadPicture() { CmsData.Person person = CmsData.DbUtil.Db.People.SingleOrDefault(p => p.PeopleId == id); if (person == null || person.Picture == null) { return; } ImageData.Image image = ImageData.DbUtil.Db.Images.SingleOrDefault(i => i.Id == person.Picture.SmallId); if (image != null) { picture = Convert.ToBase64String(image.Bits); } }
public FileResult DocumentDownload(int documentId) { var document = CurrentDatabase.OrgMemberDocuments.SingleOrDefault(o => o.DocumentId == documentId); ImageData.Image i = CurrentImageDatabase.Images.SingleOrDefault(im => im.Id == document.ImageId); var shortType = i.Mimetype; i.Mimetype = MimeTypes.MimeTypeFromShortType(shortType); var cd = new System.Net.Mime.ContentDisposition { FileName = $"{document.DocumentName}{shortType}", Inline = false, }; Response.AppendHeader("Content-Disposition", cd.ToString()); return(File(i.Bits, i.Mimetype)); }
public override void ExecuteResult(ControllerContext context) { context.HttpContext.Response.Clear(); context.HttpContext.Response.Cache.SetExpires(DateTime.Now.AddMinutes(10)); context.HttpContext.Response.Cache.SetCacheability(HttpCacheability.Public); if (id == -2) { context.HttpContext.Response.ContentType = "image/png"; context.HttpContext.Response.BinaryWrite(NoPic2()); } else if (id == -1) { context.HttpContext.Response.ContentType = "image/jpeg"; context.HttpContext.Response.BinaryWrite(NoPic1()); } else if (id == -3) { context.HttpContext.Response.ContentType = "image/jpeg"; context.HttpContext.Response.BinaryWrite(NoPic3()); } else if (id == -4) { context.HttpContext.Response.ContentType = "image/jpeg"; context.HttpContext.Response.BinaryWrite(NoMalePic()); } else if (id == -5) { context.HttpContext.Response.ContentType = "image/jpeg"; context.HttpContext.Response.BinaryWrite(NoFemalePic()); } else if (id == -6) { context.HttpContext.Response.ContentType = "image/png"; context.HttpContext.Response.BinaryWrite(NoPic2Sm()); } else if (id == -7) { context.HttpContext.Response.ContentType = "image/jpeg"; context.HttpContext.Response.BinaryWrite(NoMalePicSm()); } else if (id == -8) { context.HttpContext.Response.ContentType = "image/jpeg"; context.HttpContext.Response.BinaryWrite(NoFemalePicSm()); } else { ImageData.Image i = null; var idb = DbUtil.CheckImageDatabaseExists(Util.CmsHost.Replace("CMS_", "CMSi_")); if (idb == DbUtil.CheckDatabaseResult.DatabaseExists) { try { i = ImageData.DbUtil.Db.Images.SingleOrDefault(ii => ii.Id == id); } // ReSharper disable once EmptyGeneralCatchClause catch (Exception) { } } if (i == null || i.Secure == true) { if (nodefault) { return; } if (portrait) { context.HttpContext.Response.ContentType = "image/jpeg"; context.HttpContext.Response.BinaryWrite(tiny ? NoPic1() : NoPic2()); } else { context.HttpContext.Response.ContentType = "image/png"; } context.HttpContext.Response.BinaryWrite(NoPic()); } else { if (w.HasValue && h.HasValue) { context.HttpContext.Response.ContentType = "image/jpeg"; var ri = FetchResizedImage(i, w.Value, h.Value, mode); context.HttpContext.Response.BinaryWrite(ri); } else { context.HttpContext.Response.ContentType = i.Mimetype ?? "image/jpeg"; context.HttpContext.Response.BinaryWrite(i.Bits); } } } }
public byte[] FetchResizedImage(ImageData.Image img, int w, int h, string mode = "max") { return(ImageData.Image.ResizeFromBits(img.Bits, w, h, mode)); }
private void WriteDbImage(ControllerContext context) { #if DEBUG // speed up local development when no CMSi_ database exists // the try catch takes too long and the DatabaseExists function runs quickly using (var db = CMSDataContext.Create(context.HttpContext)) if (!DbUtil.DatabaseExists("CMSi_" + db.Host)) { return; } #endif ImageData.Image image = null; try { if (GrantPermission(id)) { using (var db = ImageData.CMSImageDataContext.Create(context.HttpContext)) { image = db.Images.SingleOrDefault(ii => ii.Id == id); } } else { (new HttpUnauthorizedResult()).ExecuteResult(context); return; } } catch { } if (image.IsNull() || (shouldBePublic && image?.IsPublic == false)) { WritePng(context, NoPic()); } else if (image?.Secure == true) { if (nodefault) { return; } if (portrait) { WriteJpeg(context, tiny ? NoPic1() : NoPic2()); } else { WritePng(context, NoPic()); } } else { if (w.HasValue && h.HasValue) { var ri = FetchResizedImage(image, w.Value, h.Value, mode); WriteJpeg(context, ri); } else { WriteImage(context, image.Mimetype ?? "image/jpeg", image.Bits); } } }
public ActionResult FetchImage(string data) { // Authenticate first var authError = Authenticate(); if (authError != null) { return(authError); } // Check to see if type matches BaseMessage dataIn = BaseMessage.createFromString(data); if (dataIn.type != BaseMessage.API_TYPE_PERSON_IMAGE_REFRESH) { return(BaseMessage.createTypeErrorReturn()); } // Everything is in order, start the return MobilePostFetchImage mpfi = JsonConvert.DeserializeObject <MobilePostFetchImage>(dataIn.data); BaseMessage br = new BaseMessage(); if (mpfi.id == 0) { return(br.setData("The ID for the person cannot be set to zero")); } br.data = "The picture was not found."; br.type = BaseMessage.API_TYPE_PERSON_IMAGE_REFRESH; var person = DbUtil.Db.People.SingleOrDefault(pp => pp.PeopleId == mpfi.id); if (person.PictureId != null) { ImageData.Image image = null; switch (mpfi.size) { case 0: // 50 x 50 image = ImageData.DbUtil.Db.Images.SingleOrDefault(i => i.Id == person.Picture.ThumbId); break; case 1: // 120 x 120 image = ImageData.DbUtil.Db.Images.SingleOrDefault(i => i.Id == person.Picture.SmallId); break; case 2: // 320 x 400 image = ImageData.DbUtil.Db.Images.SingleOrDefault(i => i.Id == person.Picture.MediumId); break; case 3: // 570 x 800 image = ImageData.DbUtil.Db.Images.SingleOrDefault(i => i.Id == person.Picture.LargeId); break; } if (image != null) { br.data = Convert.ToBase64String(image.Bits); br.count = 1; br.error = 0; } } return(br); }