111,097
社区成员




public class Imagetest : IHttpHandler
{
HttpRequest Request { get; set; }
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "image/jpeg";
Request = context.Request;
using (var img = new Bitmap(256, 256))
{
PrintLogo(img);
//var ics = GetEncoderInfo("image/png");
var ics = GetEncoderInfo("image/jpeg");
var ptrs = new EncoderParameters();
ptrs.Param[0] = new EncoderParameter(Encoder.Quality, 100L);
img.Save(context.Response.OutputStream, ics, ptrs);
}
}
void PrintLogo(System.Drawing.Image src)
{
using (var g = Graphics.FromImage(src))
{
g.Clear(Color.White);
g.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;
g.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.HighQuality;
g.DrawLine(Pens.Red, new Point(0, 0), new Point(256, 256));
g.DrawLine(Pens.Green, new Point(64, 0), new Point(256, 256));
g.DrawLine(Pens.Blue, new Point(0, 64), new Point(256, 256));
g.DrawLine(Pens.Black, new Point(0, 128), new Point(256, 256));
g.DrawLine(Pens.Yellow, new Point(128, 0), new Point(256, 256));
g.DrawString("Png效果", new Font("新宋体", 12), Brushes.Red, new Point(192, 8));
g.DrawString("Png效果", new Font("新宋体", 12), Brushes.Green, new Point(192, 32));
g.DrawString("Png效果", new Font("新宋体", 12), Brushes.Blue, new Point(192, 56));
g.DrawString("Png效果", new Font("新宋体", 12), Brushes.Black, new Point(192, 80));
}
}
public bool IsReusable { get { return false; } }
private static ImageCodecInfo GetEncoderInfo(String mimeType)
{
int j;
ImageCodecInfo[] encoders;
encoders = ImageCodecInfo.GetImageEncoders();
for (j = 0; j < encoders.Length; ++j)
{
if (encoders[j].MimeType == mimeType)
return encoders[j];
}
return null;
}
}