This commit is contained in:
69
source/WBI/dynimage.ashx
Normal file
69
source/WBI/dynimage.ashx
Normal file
@@ -0,0 +1,69 @@
|
||||
<%@ WebHandler Language="C#" Class="dynimage" %>
|
||||
|
||||
using System;
|
||||
using System.Web;
|
||||
using System.Drawing;
|
||||
using System.Drawing.Imaging;
|
||||
using System.IO;
|
||||
public class dynimage : IHttpHandler
|
||||
{
|
||||
|
||||
public void ProcessRequest(HttpContext context)
|
||||
{
|
||||
|
||||
string imagetype = context.Request.QueryString["t"];
|
||||
switch (imagetype)
|
||||
{
|
||||
case "flag":
|
||||
{
|
||||
|
||||
Bitmap source = new Bitmap(context.Server.MapPath("~/graphics/FlagBlack16.png"));
|
||||
|
||||
int ARGB = int.Parse(context.Request.QueryString["argb"]);
|
||||
Color NewColor = Color.FromArgb(ARGB);
|
||||
swapcolor(Color.FromArgb(255, 0, 0, 0), NewColor, source);
|
||||
|
||||
context.Response.Clear();
|
||||
context.Response.ContentType = "image/png";
|
||||
|
||||
using (MemoryStream stream = new MemoryStream())
|
||||
{
|
||||
source.Save(stream, ImageFormat.Png);
|
||||
|
||||
stream.WriteTo(context.Response.OutputStream);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public bool IsReusable {get{return false;}}
|
||||
protected void swapcolor(Color oldColor, Color newColor, Bitmap baseImage)
|
||||
{
|
||||
if (newColor != oldColor)
|
||||
{
|
||||
|
||||
int width = baseImage.Width;
|
||||
int height = baseImage.Height;
|
||||
|
||||
int i, j;
|
||||
for (i = 0; i < width; i++)
|
||||
{
|
||||
for (j = 0; j < height; j++)
|
||||
{
|
||||
Color pixelColor = baseImage.GetPixel(i, j);
|
||||
|
||||
//Replace each all black pixel with the chosen color
|
||||
if (pixelColor == oldColor)
|
||||
{
|
||||
baseImage.SetPixel(i, j, newColor);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user