Ejemplo n.º 1
0
        public static bool ProcessPixelRequest(HttpContext context)
        {
            HttpRequest  request  = context.Request;
            HttpResponse response = context.Response;

            if (!IsPixelRequest(request))
            {
                return(false);
            }

            ImageSetParameters parameters = new ImageSetParameters();
            string             imageName  = string.Empty;
            string             nameSpaceQualifiedTypeName = string.Empty;

            parameters = GetParameters(request, out imageName, out nameSpaceQualifiedTypeName);
            if (string.IsNullOrEmpty(nameSpaceQualifiedTypeName))
            {
                return(ProcessResourceRequest(imageName, parameters));
            }

            try
            {
                //object retVal = method.Invoke(null, (object[])parameters);
                IImageSet retVal = GetImageSet(nameSpaceQualifiedTypeName, parameters);
                if (retVal == null)
                {
                    response.Clear();
                    response.StatusCode = 404;
                    response.Status     = "Image not found";
                    context.ApplicationInstance.CompleteRequest();
                    return(true);
                }

                IImageSet    imageSet = (IImageSet)retVal;
                MemoryStream ms       = new MemoryStream();

                // saving to a memory stream isn't necessary for jpeg but I'm leaving this in just in case I change the format to png later
                imageSet[imageName].Save(ms, ImageFormat.Png);

                response.Clear();
                //TODO: Parameterize the content type/ImageFormat
                response.ContentType = "image/Png"; // this must match the ImageFormat in the Save call above
                ms.WriteTo(response.OutputStream);
                imageSet.Dispose();
                context.ApplicationInstance.CompleteRequest();
            }
            catch (Exception ex)
            {
                LogManager.CurrentLog.AddEntry("An error occurred processing PixelServer request:\r\n Parameters: {0}", ex, new string[] { parameters.ToString() });
            }

            return(true);
        }
Ejemplo n.º 2
0
        public static bool ProcessPixelRequest(HttpContext context)
        {
            HttpRequest request = context.Request;
            HttpResponse response = context.Response;

            if (!IsPixelRequest(request))
                return false;

            ImageSetParameters parameters = new ImageSetParameters();
            string imageName = string.Empty;
            string nameSpaceQualifiedTypeName = string.Empty;
            parameters = GetParameters(request, out imageName, out nameSpaceQualifiedTypeName);
            if (string.IsNullOrEmpty(nameSpaceQualifiedTypeName))
                return ProcessResourceRequest(imageName, parameters);

            try
            {

                //object retVal = method.Invoke(null, (object[])parameters);
                IImageSet retVal = GetImageSet(nameSpaceQualifiedTypeName, parameters);
                if (retVal == null)
                {
                    response.Clear();
                    response.StatusCode = 404;
                    response.Status = "Image not found";
                    context.ApplicationInstance.CompleteRequest();
                    return true;
                }

                IImageSet imageSet = (IImageSet)retVal;
                MemoryStream ms = new MemoryStream();

                // saving to a memory stream isn't necessary for jpeg but I'm leaving this in just in case I change the format to png later
                imageSet[imageName].Save(ms, ImageFormat.Png);

                response.Clear();
                //TODO: Parameterize the content type/ImageFormat
                response.ContentType = "image/Png"; // this must match the ImageFormat in the Save call above
                ms.WriteTo(response.OutputStream);
                imageSet.Dispose();
                context.ApplicationInstance.CompleteRequest();
            }
            catch(Exception ex)
            {
                LogManager.CurrentLog.AddEntry("An error occurred processing PixelServer request:\r\n Parameters: {0}", ex, new string[] { parameters.ToString() });
            }

            return true;
        }