#include <ShLwApi.h>
#pragma comment(lib, "ShLwApi.lib")
//插入影像图
Acad::ErrorStatus insertIMGFile(AcDbObjectId& ImgId,CString strCadLayerName,CString strFilePathName,CString KeyWord,AcGePoint2d pntLeftDown,AcGePoint2d pntRightUp)
{
#if _MSC_VER >= 1600
//一定要加载此文件,否则加载影像图时会失败
if (!acrxDynamicLinker->loadModule(_T("acISMobj19.dbx"), true))
{
acutPrintf(_T("无法加载acISMobj19.dbx\n"));
}
#elif _MSC_VER >= 1500
//一定要加载此文件,否则加载影像图时会失败
if (!acrxDynamicLinker->loadModule(_T("acISMobj18.dbx"), true))
{
acutPrintf(_T("无法加载acISMobj18.dbx\n"));
}
#elif _MSC_VER >= 1400
//一定要加载此文件,否则加载影像图时会失败
if (!acrxDynamicLinker->loadModule(_T("acISMobj17.dbx"), true))
{
acutPrintf(_T("无法加载acISMobj17.dbx\n"));
}
#elif _MSC_VER >= 1300
if (!acrxDynamicLinker->loadModule(_T("acISMobj16.dbx"), true))
{
acutPrintf(_T("无法加载acISMobj16.dbx\n"));
}
#else
if (!acrxDynamicLinker->loadModule(_T("acISMobj15.dbx"), true))
{
acutPrintf(_T("无法加载acISMobj15.dbx\n"));
}
#endif
if(strFilePathName.IsEmpty())
return Acad::eInvalidInput;
if(KeyWord.IsEmpty())
{
KeyWord = PathFindFileName(strFilePathName);
}
if(KeyWord.IsEmpty())//该影像已经加载
{
return Acad::eInvalidInput;
}
AcDbDictionary* pDictionary;
Adesk::Boolean bNameInUse;
AcDbObjectId DictionaryId;
AcDbObjectId RasterImgDefId;
AcDbObjectId RasterImgId;
AcDbRasterImageDef* pAcDbRasterImageDef;
Acad::ErrorStatus es; //找到当前数据库的imageDictionary
DictionaryId=AcDbRasterImageDef::imageDictionary(acdbHostApplicationServices()->workingDatabase());
if(!DictionaryId.isValid())
{
//该词典还未创建
es = AcDbRasterImageDef::createImageDictionary(acdbHostApplicationServices()->workingDatabase(),DictionaryId);
if(es!=Acad::eOk)
{
return es;
}
} //打开词典
es = acdbOpenObject((AcDbObject*&)pDictionary,DictionaryId,AcDb::kForWrite);
if(es!=Acad::eOk)
{
return es;
} bNameInUse=pDictionary->has(KeyWord);
//如果词典中不存在该影像
if(!bNameInUse)
{
pAcDbRasterImageDef=new AcDbRasterImageDef;
es = pAcDbRasterImageDef->setSourceFileName(strFilePathName);
if(es!=Acad::eOk)
{
pDictionary->close();
return es;
} es = pAcDbRasterImageDef->load();
if(es!=Acad::eOk)
{
pDictionary->close();
return es;
}
es = pDictionary->setAt(KeyWord,pAcDbRasterImageDef,RasterImgDefId);
if(es!=Acad::eOk)
{
pDictionary->close();
return es;
}
pAcDbRasterImageDef->close();
}
else
pDictionary->getAt(KeyWord,RasterImgDefId);
pDictionary->close(); //设置插入点以及宽度和高度
AcDbRasterImage *pRasterImg=new AcDbRasterImage();
AcGeVector3d CorVert,HigVert;
CorVert.x=pntRightUp.x-pntLeftDown.x;
CorVert.y=;
CorVert.z=;
HigVert.x=;
HigVert.y=pntRightUp.y-pntLeftDown.y;
HigVert.z=;
pRasterImg->setImageDefId(RasterImgDefId);
pRasterImg->setOrientation(AcGePoint3d(pntLeftDown.x,pntLeftDown.y,),CorVert,HigVert);
pRasterImg->setDisplayOpt(AcDbRasterImage::kTransparent , Adesk::kTrue);
es=pRasterImg->setLayer(strCadLayerName);
if(es!=Acad::eOk)
{
pRasterImg->close();
return es;
} //添加到数据库
AcDbDatabase *pDb=acdbHostApplicationServices()->workingDatabase();
AcDbBlockTable *pBt=NULL;
AcDbBlockTableRecord *pRc=NULL;
es=pDb->getBlockTable(pBt,AcDb::kForRead);
if(es!=Acad::eOk)
{
pRasterImg->close();
return es;
}
es=pBt->getAt(ACDB_MODEL_SPACE,pRc,AcDb::kForWrite);
if (es!=Acad::eOk)
{
pBt->close();
pBt=NULL;
pRasterImg->close();
return es;
} Acad::ErrorStatus result=pRc->appendAcDbEntity(RasterImgId,pRasterImg);
if(result!=Acad::eOk)
{
pRc->close();
pBt->close();
pRasterImg->close();
return es;
}
ImgId=RasterImgId; pRc->close();
pBt->close();
pRasterImg->close();
return es;
}

arx 插入图片的更多相关文章

  1. C#向PPT文档插入图片以及导出图片

    PowerPoint演示文稿是我们日常工作中常用的办公软件之一,而图片则是PowerPoint文档的重要组成部分,那么如何向幻灯片插入图片以及导出图片呢?本文我将给大家分享如何使用一个免费版Power ...

  2. MWeb 1.4 新功能介绍一:引入文件夹到 MWeb 中管理,支持 Octpress、Jekyll 等静态博客拖拽插入图片和实时预览

    之前在 MWeb 中打开非文档库中的 Markdown 文档,如果文档中有引用到本机图片,是没办法在 MWeb 中显示出来和预览的.这是因为 Apple 规定在 Mac App Store(MAS) ...

  3. C#操作word的一些基本方法(word打印,插入文件,插入图片,定位页眉页脚,去掉横线)

    Microsoft.Office.Interop.Word.Application wordApp = new ApplicationClass() word对象 2. Microsoft.Offic ...

  4. java POI实现向Excel中插入图片

          做Web开发免不了要与Excel打交道.今天老大给我一个任务-导出Excel.开始想的还是蛮简单的,无非就是查找,构建Excel,response下载即可.但是有一点不同,就是要加入图片, ...

  5. MarkDown插入图片

    MarkDown插入图片的语法 ·编辑器:MacDown 比如博客园的Logo,URL是 http://static.cnblogs.com/images/logo_small.gif 在要插入图片的 ...

  6. OpenXml入门---word里面插入图片

    下面介绍如何在word里面插入图片,顺便小弟发现MSDN官网有完整的OpenXML教程,虽然是全英文的不过还是很有帮助的. Tips,原来摘抄代码里面没有模板,在copy过来发现插入word中的图片大 ...

  7. 【VBA】批量插入图片

    解决如下问题: 需要批量导入图片到Excel 图片放在一个文件夹中 图片有严格的顺序关系,即按照:共通名_编号的方式命名. 图片格式统一,即均为同一格式. 有两种方式可以插入图片到Excel中,其一为 ...

  8. 【POI】使用POI处理xlsx的cell中的超链接 和 插入图片 和 设置打印区域

    使用POI对xlsx中插入超链接和 插入图片 package com.it.poiTest; import java.awt.image.BufferedImage; import java.io.B ...

  9. LaTex 插入图片

    \usepackage{mathrsfs} \usepackage{amsmath} \usepackage{graphicx} 宏包 \includegraphics{graph01.eps} %插 ...

随机推荐

  1. 2013:Audio Tag Classification - MIREX Wiki

    Contents [hide] 1 Description 1.1 Task specific mailing list 2 Data 2.1 MajorMiner Tag Dataset 2.2 M ...

  2. Rational 最新软件试用下载地址

    看到非常多 TX 都在问老版本号 Raitonal 软件相关的问题,可是因为产品升级的时候有非常多名字都发生了更改(比方说 Rational Rose 最新的版本号变成了 Rational Softw ...

  3. MySQL-数据更新(UPDATE)

    MySQL-UPDATE语句 功能介绍:用于更新表中的现有数据.亦可用UPDATE语句来更改表中单个行,一组行或所有行的列值. MySQL-UPDATE语法: UPDATE [LOW_PRIORITY ...

  4. Scala界面事件处理

    演示样例代码: import scala.swing.SimpleSwingApplication import scala.swing.MainFrame import scala.swing.Bu ...

  5. Restful WebService简介

    RESTful Web Services已经渐渐開始流行, 主要是用于解决异构系统之间的通信问题.非常多站点和应用提供的API,都是基于RESTful风格的Web Services,比較就有Googl ...

  6. POJ3254 状压dp

                                                                                                    Corn ...

  7. Node.js+Express搭建博客系统基本环境安装

    1.下载安装node.js 官网下载地址:https://nodejs.org/en/download/ 2.安装express. 打开node命令行工具,在命令行中输入:npm install -g ...

  8. 关于The hierarchy of the type TestBeforeAdvice is inconsistent的问题

    今天准备写一个spring aop的demo,创建了TestBeforeAdvice类,该类实现了MethodBeforeAdvice接口,eclipse报了"The hierarchy o ...

  9. python库学习笔记——re库:正则表达式入门(一)

    什么是正则表达式? 我们在处理文本文件的时候,会按照某种规则查找某些特定的字符串.比方我们希望从一堆电子档案中找到人员的电话号码整理成通讯录.于是,我们可以利用特定字符串的规律编程获得我们想要的信息. ...

  10. 24. [Ext JS 4] 实战之Load Mask(加载遮罩)的显示与隐藏

    转自:https://blog.csdn.net/oscar999/article/details/27176791