export.aspx.cs
资源名称:amline.rar [点击查看]
上传用户:ntgydz
上传日期:2022-07-17
资源大小:261k
文件大小:3k
源码类别:
FlashMX/Flex源码
开发平台:
Flash/ActionScript
- using System;
- using System.Web;
- using System.Drawing;
- using System.Drawing.Imaging;
- public partial class _export : System.Web.UI.Page
- {
- protected void Page_Load(object sender, EventArgs e)
- {
- if (Request.Form["width"] != null && Request.Form["width"] != String.Empty)
- {
- // image dimensions
- int width = Int32.Parse((Request.Form["width"].IndexOf('.') != -1) ? Request.Form["width"].Substring(0, Request.Form["width"].IndexOf('.')) : Request.Form["width"]);
- int height = Int32.Parse((Request.Form["height"].IndexOf('.') != -1) ? Request.Form["height"].Substring(0, Request.Form["height"].IndexOf('.')) : Request.Form["height"]);
- // image
- Bitmap result = new Bitmap(width, height);
- // set pixel colors
- for (int y = 0; y < height; y++)
- {
- // column counter for the row
- int x = 0;
- // get current row data
- string[] row = Request.Form["r" + y].Split(new char[] { ',' });
- // set pixels in the row
- for (int c = 0; c < row.Length; c++)
- {
- // get pixel color and repeat count
- string[] pixel = row[c].Split(new char[] { ':' });
- Color current_color = ColorTranslator.FromHtml("#" + pixel[0]);
- int repeat = pixel.Length > 1 ? Int32.Parse(pixel[1]) : 1;
- // set pixel(s)
- for (int l = 0; l < repeat; l++)
- {
- result.SetPixel(x, y, current_color);
- x++;
- }
- }
- }
- // output image
- // image type
- Response.ContentType = "image/jpeg";
- Response.AddHeader("Content-Disposition", "attachment; filename="amchart.jpg"");
- // find image encoder for selected type
- ImageCodecInfo[] encoders;
- ImageCodecInfo img_encoder = null;
- encoders = ImageCodecInfo.GetImageEncoders();
- foreach (ImageCodecInfo codec in encoders)
- if (codec.MimeType == Response.ContentType)
- {
- img_encoder = codec;
- break;
- }
- // image parameters
- EncoderParameter jpeg_quality = new EncoderParameter(Encoder.Quality, 100L); // for jpeg images only
- EncoderParameters enc_params = new EncoderParameters(1);
- enc_params.Param[0] = jpeg_quality;
- result.Save(Response.OutputStream, img_encoder, enc_params);
- }
- else
- {
- // invalid post
- Response.Write("Invalid post");
- }
- }
- }