public JsonResult ListObjects(string phrase) { using (var ctx = new FrontEndContext()) { var objs = ctx.AstroObjects .Where(x => String.IsNullOrEmpty(phrase) || x.Name.Contains(phrase)) .OrderBy(x => x.BigPhotoUrl) .ThenBy(x => x.CroppedPhotoUrl) .ToArray(); return Json(objs, JsonRequestBehavior.AllowGet); } }
public static void CroppPhoto( [QueueTrigger("photosrequest")]Photo photo, [Blob("photos/{PhotoUid}", FileAccess.Read)] Stream bigFoto, CloudStorageAccount acc) { var client = acc.CreateCloudBlobClient(); var photosRef = client.GetContainerReference("photos"); using (var ctx = new FrontEndContext()) { using (var srcImg = Image.FromStream(bigFoto)) { foreach (var item in photo.Items) { using (var dstImg = new Bitmap(200, 200)) using (var dstGrp = Graphics.FromImage(dstImg)) { dstGrp.FillRectangle(Brushes.Black, 0, 0, 200, 200); dstGrp.DrawImage(srcImg, new Rectangle(0, 0, 200, 200), new Rectangle(item.X - 100, item.Y - 100, 200, 200), GraphicsUnit.Pixel); var uid = item.No + "_" + photo.PhotoUid; var objPhoto = photosRef.GetBlockBlobReference(uid); objPhoto.Properties.ContentType = "image/jpeg"; using (var ms = new MemoryStream()) { dstImg.Save(ms, ImageFormat.Jpeg); ms.Seek(0, SeekOrigin.Begin); objPhoto.UploadFromStream(ms); } ctx.AstroObjects.Add(new AstroObject() { Uid = uid, BigPhotoUrl = photo.PhotoUrl, CroppedPhotoUrl = objPhoto.Uri.ToString(), BigPhotoX = item.X, BigPhotoY = item.Y, Name = item.Name }); } } } ctx.SaveChanges(); } }