Custom Http Handler

Amboise

ID: 1
Place: Amboise
Country: France
Amboise

ID: 2
Place: Amboise
Country: France
Amboise

ID: 3
Place: Amboise
Country: France
Amboise

ID: 4
Place: Amboise
Country: France
Blois

ID: 5
Place: Blois
Country: France
Blois

ID: 6
Place: Blois
Country: France
Chaumont

ID: 7
Place: Chaumont
Country: France
Chaumont

ID: 8
Place: Chaumont
Country: France
Description

This demo uses HttpHandlerUrl property to specify a http handler to process the image.

Sample:

  • Set HttpHandlerUrl property to "CustomBinaryImageHandler.ashx".
  • The class CustomBinaryImageHandler inherits from C1BinaryImageHandler(class: C1.Web.Wijmo.Controls.C1BinaryImage.C1BinaryImageHandler)
    and overrides ProcessImageData method to customize the image:

    public class CustomBinaryImageHandler : C1BinaryImageHandler
    {
        public override C1BinaryImageData ProcessImageData(C1BinaryImageData imageData)
        {
            using (var outStream = new System.IO.MemoryStream())
            using (var inStream = new System.IO.MemoryStream(imageData.Data))
            using (var image = Bitmap.FromStream(inStream))
            {
                var newImage = AddWatermark(image);
                newImage.Save(outStream, ImageFormat.Png);
                imageData.Data = outStream.ToArray();
                imageData.MimeType = "image/png";
                imageData.ImageFileName += "_Watermark";
            }
    
            return base.ProcessImageData(imageData);
        }
    
        private Image AddWatermark(Image image)
        {
            var watermarkString = "ComponentOne";
            var font = new Font("Arial", 8F, FontStyle.Regular);
            var newImage = new Bitmap(image.Width, image.Height);
    
            using (var g = Graphics.FromImage(newImage))
            {
                g.DrawImage(image, new Point(0, 0));
                g.DrawString(watermarkString, font, new SolidBrush(Color.White), new PointF(2, newImage.Height - font.Height - 2));
            }
    
            return newImage;
        }
    }
                

Documentation