ArcEngine 地图图片输出 栅格不清晰
来源:互联网 发布:mac如何下载视频 编辑:程序博客网 时间:2024/05/01 22:40
很久之前发现的问题,地图图片使用IExport方法输出的栅格图片不够清晰(96dpi和300dpi看起来完全一样)
找了很久也没找到合适的方法,之前用的笨办法是将IExport.PixelBounds放大来实现输出的栅格图片的清晰度,这两天好好看了一下,发现使用IPrintAndExport接口的Export方法输出的栅格很清晰 但是不能输出指定矩形框范围的图片
最后发现设置IActiveView.ScreenDisplay.DisplayTransformation 转换为 IOutputRasterSettings,改变它的ResampleRatio为1即可输出清晰的栅格
贴上两种输出清晰图片的代码
/// <summary>
/// 生成当前地图图片
/// </summary>
/// <param name="activeView"></param>
/// <param name="outputResolution">分辨率</param>
/// <param name="pathFileName">文件名</param>
/// <returns></returns>
public static bool CreateJPEGHIResolutionFromActiveView(IActiveView activeView, int outputResolution, string pathFileName)
{
IExport export = new ExportJPEGClass();
export.ExportFileName = pathFileName;
IPrintAndExport docPrintExport = new PrintAndExportClass();
docPrintExport.Export(activeView, export, outputResolution, true, null);
return true;
}
/// <summary>
/// 生成指定Envelope范围的图片
/// </summary>
/// <param name="activeView"></param>
/// <param name="fileName">名称</param>
/// <param name="env">范围</param>
/// <param name="dpi">分辨率</param>
/// <returns></returns>
public static bool ExportMapToImage(IActiveView activeView, string fileName, IEnvelope env, int dpi)
{
try
{
IExport export = null;
string filter = fileName.Substring(fileName.LastIndexOf('.'));
switch (filter)
{
case ".jpg":
export = new ExportJPEGClass();
break;
case ".bmp":
export = new ExportBMPClass();
break;
case ".emf":
export = new ExportEMFClass();
break;
case ".gif":
export = new ExportGIFClass();
break;
case ".ai":
export = new ExportAIClass();
break;
case ".pdf":
export = new ExportPDFClass();
break;
case ".png":
export = new ExportPNGClass();
break;
case ".eps":
export = new ExportPSClass();
break;
case ".svg":
export = new ExportSVGClass();
break;
case ".tif":
export = new ExportTIFFClass();
break;
default:
//MessageBox.Show("输出格式错误");
return false;
}
double screenResolution = activeView.ScreenDisplay.DisplayTransformation.Resolution;
tagRECT exportRECT;
exportRECT.left = 0;
exportRECT.top = 0;
int pixw = 0;
int pixh = 0;
pixw = (int)(env.Width * (dpi / screenResolution));
pixh = (int)(env.Height * (dpi / screenResolution));
exportRECT.right = pixw;
exportRECT.bottom = pixh;
IEnvelope pEnv = new EnvelopeClass();
pEnv.PutCoords(exportRECT.left, exportRECT.bottom, exportRECT.right, exportRECT.top);
export.PixelBounds = pEnv;
export.ExportFileName = fileName;
export.Resolution = dpi;
IOutputRasterSettings pOutputRasterSettings = activeView.ScreenDisplay.DisplayTransformation as IOutputRasterSettings;
pOutputRasterSettings.ResampleRatio = 1;
activeView.Output(export.StartExporting(), dpi, ref exportRECT, env, null);
export.FinishExporting();
export.Cleanup();
System.Runtime.InteropServices.Marshal.ReleaseComObject(export);
return true;
}
catch
{
return false;
}
}
- ArcEngine 地图图片输出 栅格不清晰
- Arcengine, C#,输出栅格图片的简单方法
- [arcengine][栅格]裁剪栅格
- 地图输出栅格图片的简单方法,返回输出的文件名
- flash导出图片不清晰
- flash导出图片不清晰
- ArcEngine 中将地图导出为图片
- ArcEngine 栅格数据 总结
- 2、Ecshop上传商品图片不清晰
- cocos2d-x加载图片显示不清晰
- Android 拍照裁剪图片不清晰解决办法
- arcengine栅格数据使用总结
- ArcEngine栅格范围专题图
- C#+arcengine获得栅格数据
- [arcengine][栅格]保存为本地文件
- Google 地图原本为什么不采用矢量地图渲染,而是下载栅格化图像然后渲染?
- arcengine栅格渲染(栅格重分类) IRasterClassifyColorRampRenderer
- arcengine栅格渲染(栅格重分类) IRasterClassifyColorRampRenderer
- “在工作中,与上级意见不一致”面试者如何巧妙回答?
- 水仙花数算法
- wpf 后台修改样式
- visio二次开发——事件编程
- libtool version mismatch error
- ArcEngine 地图图片输出 栅格不清晰
- Windows下使用SparkR进行数据分析
- 欢迎使用CSDN-markdown编辑器
- scp在Centos上使用出现WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
- C#实现打开另一个程序并前置显示
- 2017全球青年创业者大会早鸟票
- 使用Cookie实现自动登录
- python核心编程读书笔记--第1章eclipse插件
- 怎么对at89s52单片机进行烧录