前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SilverLight For Arcgis 导出图片保存到本地注意点。。。

SilverLight For Arcgis 导出图片保存到本地注意点。。。

作者头像
MJ.Zhou
发布2022-05-07 15:59:20
4020
发布2022-05-07 15:59:20
举报
文章被收录于专栏:.NET开发那点事

参考出处:http://bbs.esrichina-bj.cn/ESRI/thread-59271-1-1.html

使用上面提供的方法需要注意的地方:

1:url路径可能不对需要自己根据情况调整下。

2:有的图层可能需要传入token

GetUrl方法需要修改 

代码语言:javascript
复制
  private static string GetUrl(PrintArea area, string url,string token)
    {
        StringBuilder uri = new StringBuilder();
        uri.AppendFormat("{0}/export?", url);
        uri.AppendFormat(System.Globalization.CultureInfo.InvariantCulture,
            "bbox={0},{1},{2},{3}", area.XMin, area.YMin, area.XMax, area.YMax);
        uri.AppendFormat("&size={0},{1}", area.Width, area.Height);
        uri.Append("&format=png32");
        uri.Append("&transparent=true");
        if (area.SpatialReferenceID.HasValue)
        {
            uri.AppendFormat("&imageSR={0}&bboxSR={0}", area.SpatialReferenceID);
        }
        uri.Append("&f=image");
        uri.Append("&token=" + token);
        return uri.ToString();
    } 

3 .奖生成的图片转成stream的时候要用ImageFormat.Png,如果是mageFormat.jpeg那么所有透明的地方都会被黑色替代

代码语言:javascript
复制
            MemoryStream stream = new MemoryStream();
            image.Save(stream, ImageFormat.Png);
            byte[] data = new byte[(int)stream.Length]; 

4:下载图片

代码语言:javascript
复制
        protected void Button1_Click(object sender, EventArgs e)
        {
            WebClient client = new WebClient();
            string id = Request.QueryString[0];
            string url = "http://" + Request.Url.Authority + "/GetImagePrint.ashx?id="+id;
            WebClient wc = new WebClient();
            var bytes = wc.DownloadData(url);
            Response.Buffer = true;
            Page.Response.Clear();//清除缓冲区所有内容
            Page.Response.ContentType = "application/octet-stream";
            Page.Response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode("print.jpg"));
            byte[] file = bytes;
            int a = file.Length;
            Response.BinaryWrite(file);
            Response.Flush();
            Response.End();
        } 
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2010-09-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档