static bool GetIntergraph( CFile& rFile, CString& rString, TOPOMAP& theMap ) { CRuntimeClass *pRT; bool bRet = false; if( NULL == ( pRT = GetPictureType( &rFile ) ) ); CPicture *pPict = (CPicture*) pRT->CreateObject(); VERIFY( pPict->Attach( &rFile ) && pPict->ReadHeader() ); long X0, Y0, X1, Y1; TAG tag270; TAG tag33918; GetPictInfo( pPict, X0, Y0, X1, Y1); if( pPict->GetTag( 33918, tag33918 ) ) { long nItems = tag33918.Count(); if( ( 4 + 64 ) == nItems ) { IGTAG33918* pData = (IGTAG33918*) tag33918.pVal(); _ASSERTE(sizeof(theMap.m_transform.m_matrix) == sizeof(pData->dblVal) ); memcpy( theMap.m_transform.m_matrix, pData->dblVal, sizeof(theMap.m_transform.m_matrix) ); ////////////////////////////////////////////////////////////////// // Karteninformation basteln theMap.m_sizeOfPicture.cx = X1; theMap.m_sizeOfPicture.cy = Y1; // GCP's: LinksUnten, RechtsUnten, RechtsOben, LinksOben theMap.m_listOfGCP.erase( theMap.m_listOfGCP.begin(), theMap.m_listOfGCP.end() ); theMap.m_listOfGCP.push_back( GCP( GEOPOINT( ), GEOPOINT( 0, Y1, 0 ) ) ); theMap.m_listOfGCP.push_back( GCP( GEOPOINT( ), GEOPOINT( X1, Y1, 0 ) ) ); theMap.m_listOfGCP.push_back( GCP( GEOPOINT( ), GEOPOINT( X1, 0, 0 ) ) ); theMap.m_listOfGCP.push_back( GCP( GEOPOINT( ), GEOPOINT( 0, 0, 0 ) ) ); bRet = true; } } delete pPict; return bRet; }
static bool GetReferenced( CFile& rFile, CString& rString, TOPOMAP& theMap ) { CRuntimeClass *pRT; if( NULL == ( pRT = GetPictureType( &rFile ) ) ); CPicture *pPict = (CPicture*) pRT->CreateObject(); VERIFY( pPict->Attach( &rFile ) && pPict->ReadHeader() ); long X0, Y0, X1, Y1; TAG tag270; GetPictInfo( pPict, X0, Y0, X1, Y1); if( pPict->GetTag( 270, tag270 ) ) { rString = tag270.strVal(); } delete pPict; ////////////////////////////////////////////////////////////////// // Karteninformation basteln theMap.m_sizeOfPicture.cx = X1; theMap.m_sizeOfPicture.cy = Y1; // GCP's: LinksUnten, RechtsUnten, RechtsOben, LinksOben GEOPOINT LO, RU; LO.X = 0; LO.Y = 0; RU.X = 0; RU.Y = 0; theMap.m_listOfGCP.erase( theMap.m_listOfGCP.begin(), theMap.m_listOfGCP.end() ); theMap.m_listOfGCP.push_back( GCP( GEOPOINT( LO.X, RU.Y, 0 ), GEOPOINT( 0, Y1, 0 ) ) ); theMap.m_listOfGCP.push_back( GCP( GEOPOINT( RU.X, RU.Y, 0 ), GEOPOINT( X1, Y1, 0 ) ) ); theMap.m_listOfGCP.push_back( GCP( GEOPOINT( RU.X, LO.Y, 0 ), GEOPOINT( X1, 0, 0 ) ) ); theMap.m_listOfGCP.push_back( GCP( GEOPOINT( LO.X, LO.Y, 0 ), GEOPOINT( 0, 0, 0 ) ) ); return true; }
void _HYPlatformGraphicPane::_DrawPicRes (_HYRect& r, long id) { PicHandle aPic = GetPicture (id); if (aPic) { Rect aRect = HYRect2Rect (r); PictInfo pInfo; GetPictInfo (aPic,&pInfo,0,0,0,0); if (aRect.right-aRect.left<=0) r.right = aRect.right = aRect.left + pInfo.sourceRect.right - pInfo.sourceRect.left; if (aRect.bottom-aRect.top<=0) r.bottom = aRect.bottom = aRect.top + pInfo.sourceRect.bottom - pInfo.sourceRect.top; DrawPicture (aPic, &aRect); ReleaseResource ((Handle)aPic); } else { _String errMsg = _String ("No picture resource with ID ") & id; ReportWarning (errMsg); } }
OSErr GetPICTCLUT(PicHandle thePic,CTabHandle *theTab) { PictInfo piccyInfo; OSErr err; *theTab=0L; err=GetPictInfo(thePic,&piccyInfo,returnColorTable,256,systemMethod,0); if (err) return err; *theTab=piccyInfo.theColorTable; return noErr; }