This is a migrated thread and some comments may be shown as answers.

Using BinaryImage to return image to another app

2 Answers 102 Views
BinaryImage
This is a migrated thread and some comments may be shown as answers.
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

Sort by
0
sitefinitysteve
Top achievements
Rank 2
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;  
    }  
 
   
Tags
BinaryImage
Asked by
robertgalvinjr
Top achievements
Rank 1
Answers by
sitefinitysteve
Top achievements
Rank 2
Iron
Veteran
robertgalvinjr
Top achievements
Rank 1
Share this question
or