#include "stdafx.h" #include "TdkException.h" #include "TdkCanvas.h" #include "TdkCDCanvas.h" #include "TdkRGBMemBuffer.h" #include "TdkProcessingService.h" #include "TdkGraphicalService.h" #include "TdkPersistenceService.h" #include "TdkAccessConDescriptor.h" #include "TeDBConnectionsPool.h" #include "TeDbConnection.h" void main(int argc, char* argv[]) { int image_width, image_height, bkg_red, bkg_green, bkg_blue; image_width = image_height = 1500; bkg_red = 120; bkg_green = 120; bkg_blue = 255; try { ////////////////////////////// //Instancia um descritor da base Access a ser aberta. TdkAccessConDescriptor desc( "Bolivia.mdb" ); //Connect the database and insert the driver int the pool std::string sDbDesc = desc.getDbKey(); TeDBConnectionsPool::instance().getDatabase( sDbDesc ); int dbPoolIndx = TeDBConnectionsPool::instance().getDBConnectionIndx( sDbDesc ); //Registering default factories TdkObjectFactory::defaultFactoriesRegistration(); //Define o identificador global do objeto que eu desejo carregar.(ID do Objeto, ID //do Layer, Driver Index) TdkObjectGID tdkObjGID("1",_TDK_THEME, dbPoolIndx); //Define o objeto geografico atraves do seu Identificador Global TdkTheme theme(tdkObjGID); theme.name("Satelite"); TdkPersistenceService::loadObject(&theme); TeLayer* lay = theme.layer(); ////////////////////////////////////////// TeProjection* proj = lay->projection(); TeBox box = lay->box(); TdkRGBMemBuffer* buff = new TdkRGBMemBuffer(image_width, image_height); memset( buff->getBlue() , 0xFF , image_width * image_height ); memset( buff->getGreen() , 0xF0 , image_width * image_height ); memset( buff->getRed() , 0x00 , image_width * image_height ); TeColor* cor = new TeColor(bkg_red, bkg_green, bkg_blue); TdkCanvas* canvas = NULL; canvas = new TdkCDCanvas(image_width, image_height, *buff, box, *proj, *cor); if (canvas == NULL) throw; if(lay->hasGeometry(TeRASTER)) { if(!theme.rasterVisual()) { int currVis = theme.visibleRep(); theme.visibleRep( 0x40FFFFFF ); theme.createRasterVisual(); theme.visibleRep( currVis ); } TeRaster* raster = lay->raster("O1"); raster->init(); raster->setBox(box); canvas->drawRaster(raster, theme.rasterVisual()); } TdkMemBuffer* image = TdkGraphicalService::createImage(canvas, _TDK_GIF); FILE *hFile = NULL; hFile = fopen( "imagem.gif", "wb" ); if ( hFile != NULL ) { fwrite(image->buffer, 1, image->size, hFile); fclose( hFile ); } } catch ( TdkException& ex ) { cout << ex.trace(); } }