public class Resim : IHttpHandler
{
public bool IsReusable { get { return false; } }
public void ProcessRequest(HttpContext context)
{
Image image = Image.FromFile(HttpContext.Current.Server.MapPath("~/istatistik.png"));
Bitmap sayac = yaz(image, image.Width, image.Height, new List<string>() { "1. Değer", "2. Değer", "3. Değer" }, 8);
MemoryStream ms = new MemoryStream();
sayac.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
byte[] r = ms.GetBuffer();
image.Dispose();
context.Response.Clear();
context.Response.ContentType = "image/png";
context.Response.BinaryWrite(r);
context.Response.End();
}
// Kullanacağımız Metot
private static Bitmap yaz(Image resim, int genislik, int yukseklik, List<string> yazilacak, float font)
{
Bitmap resmim = new Bitmap(resim, genislik, yukseklik);
Graphics graf = Graphics.FromImage(resmim);
SolidBrush firca = new SolidBrush(Color.Black);
Font fnt = new Font("tahoma", font); // kullanılan font ve büyüklüğü.
SizeF size = new SizeF(0, 15); // yazılacak metin için belirlenecek alanın büyüklüğü.
PointF coor;
RectangleF kutu;
StringFormat sf = new StringFormat();
sf.Alignment = StringAlignment.Center;
int i = 7;
foreach (string deger in yazilacak)
{
coor = new PointF(72, i); // yazılacak metinin koordinatları;.
kutu = new RectangleF(coor, size); // yazılacak metinin konumunu belirtiyoruz.
graf.DrawString(deger, fnt, firca, kutu, sf); // metnimizi yazdırıyoruz.
i += 15; // her metnin yukarıdan olan uzaklığını artırmak için bu değeri tutuyoruz.
}
return resmim;
}
}