robertgalvinjr
Top achievements
Rank 1
robertgalvinjr
asked on 29 Dec 2009, 08:08 PM
I have an Adobe Flash app that needs to retrieve an image from a URL on a webserver. If I just put the radbinary image control inside an ASPX page I can see the image if I browse directly to the page. But the flash application doesn't think it is in image. How can I do this?
2 Answers, 1 is accepted
0
sitefinitysteve
Top achievements
Rank 2
Iron
Iron
Veteran
answered on 29 Dec 2009, 10:32 PM
I dont know much about flash, but can you serve it up in an ASHX instead?
0
robertgalvinjr
Top achievements
Rank 1
answered on 30 Dec 2009, 04:43 PM
Figured it out - has nothing to do with RadBinary image - but in case anyone is wondering:
| protected void Page_Load(object sender, EventArgs e) |
| { |
| int pptID = 0; |
| if (Request.QueryString["pptID"] != null) |
| pptID = Convert.ToInt32(Request.QueryString["pptID"]); |
| int sNum = 1; |
| if (Request.QueryString["sNum"] != null) |
| sNum = Convert.ToInt32(Request.QueryString["sNum"]); |
| dbDataDataContext db = new dbDataDataContext(); |
| PPT p = db.PPTs.Where(pt => pt.PPTID == pptID).FirstOrDefault(); |
| if (p != null) |
| { |
| PPTImage pImage = db.PPTImages.Where(pi => pi.PPTID == Convert.ToInt32(pptID) |
| && pi.SlideNum == sNum).FirstOrDefault(); |
| if (pImage != null) |
| { |
| Response.ContentType = pImage.MimeType; |
| byte[] bytes = pImage.FileBinary.ToArray(); |
| System.Data.Linq.Binary fileBinary = new System.Data.Linq.Binary(bytes); |
| //resize graphic down to standard 64x64 size for all avatars |
| MemoryStream ms = new MemoryStream(bytes); |
| drawing.Image image = drawing.Image.FromStream(ms); |
| int w = 640; |
| int h = 480; |
| if (Request.QueryString["w"] != null) |
| { |
| try |
| { |
| w = Convert.ToInt32(Request.QueryString["w"]); |
| } |
| catch |
| { |
| } |
| } |
| if (Request.QueryString["h"] != null) |
| { |
| try |
| { |
| h = Convert.ToInt32(Request.QueryString["h"]); |
| } |
| catch |
| { |
| } |
| } |
| drawing.Image resizedImage = resizeImage(image, new drawing.Size(w, h)); |
| //change byte array to smaller sized file after resize |
| MemoryStream msC = new MemoryStream(); |
| drawing.Imaging.ImageFormat iFormat = resizedImage.RawFormat; |
| resizedImage.Save(msC, System.Drawing.Imaging.ImageFormat.Jpeg); |
| bytes = msC.ToArray(); |
| Response.BinaryWrite(bytes); |
| } |
| } |
| } |
| private drawing.Image resizeImage(drawing.Image imgToResize, drawing.Size size) |
| { |
| int sourceWidth = imgToResize.Width; |
| int sourceHeight = imgToResize.Height; |
| float nPercent = 0; |
| float nPercentW = 0; |
| float nPercentH = 0; |
| nPercentW = ((float)size.Width / (float)sourceWidth); |
| nPercentH = ((float)size.Height / (float)sourceHeight); |
| if (nPercentH < nPercentW) |
| nPercent = nPercentH; |
| else |
| nPercent = nPercentW; |
| int destWidth = (int)(sourceWidth * nPercent); |
| int destHeight = (int)(sourceHeight * nPercent); |
| drawing.Bitmap b = new drawing.Bitmap(destWidth, destHeight); |
| drawing.Graphics g = drawing.Graphics.FromImage((drawing.Image)b); |
| g.InterpolationMode = InterpolationMode.HighQualityBicubic; |
| g.DrawImage(imgToResize, 0, 0, destWidth, destHeight); |
| g.Dispose(); |
| return (drawing.Image)b; |
| } |