天天看點

ObjectArx:插入光栅圖像

bool imageAttach(ACHAR * fileName, ACHAR* szName,  AcGePoint3d org, double dScale, double rotation, AcDbDatabase *pDb)
{
	AcDbRasterImageDef* pImageDef = new AcDbRasterImageDef();
	Acad::ErrorStatus es = pImageDef->setSourceFileName(fileName);
	if (es != Acad::eOk)
	{
		delete pImageDef;
		return false;
	}
	es = pImageDef->load();
	ASSERT(es == Acad::eOk);
	AcDbObjectId dictID = AcDbRasterImageDef::imageDictionary(pDb);

	if (dictID == AcDbObjectId::kNull)
	{
		es = AcDbRasterImageDef::createImageDictionary(pDb, dictID);
		if (es != Acad::eOk)
		{
			delete pImageDef;
			ads_printf(_T("\nCould not create dictionary\n"));
			return false;
		}
	}
	AcDbDictionary* pDict = NULL;
	es = acdbOpenObject((AcDbObject*&)pDict,
		dictID, AcDb::kForWrite);
	if (es != Acad::eOk)
	{
		delete pImageDef;
		ads_printf(_T("\nCould not open dictionary\n"));
		return false;
	}
	BOOL