Hi,
I'm programming with pure MDL (it's a huge application not migrated yet to C++) over MicroStation and Bentley Map SS4.
I need to create programmatically an image file (JPEG, BMP or similar) from the default model of a DGN, but without open the DGN with mdlSystem_newDesignFile.
I know how to to do it when the DGN is open (capturing the screen, printing to JPEG plot driver, etc), but now I need to do ii in that way.
It doesn't matter if the file image is small in size or the quality is not optimal, because I need the image to embed it in a sheet model for plotting.
I've tried the following (via thumbnail) and I can get the JPEG file, but the contents of this file is incorrect (see image below).
int estat; char fileName[MAXFILELENGTH], fJpg[MAXFILELENGTH]; byte *imageBufferP=NULL; int imageSize; byte redPalette[256], grnPalette[256], bluPalette[256]; int paletteSize, colorMode; Point2d size; strcpy (fileName, "C:\\dgn\\MapIndex.dgn"); strcpy (fJpg, "C:\\dgn\\MapIndex.jpg"); // Open the thumbnail of the selected dgn. estat = mdlSystem_openFileThumbnail (NULL, NULL, NULL, NULL, fileName, &imageBufferP, &imageSize); if (estat == SUCCESS) { // mdlImage_getExportSupport (&colorMode, NULL, NULL, NULL, NULL, NULL, IMAGEFILE_JPEG); mdlImage_getScreenPalette (redPalette, grnPalette, bluPalette, &paletteSize, statedata.current.screenNumber); size.x = 300; size.y = 300; mdlImage_createFileFromBuffer (fJpg, IMAGEFILE_JPEG, colorMode, &size, imageBufferP, IMAGEFORMAT_BitMap, NULL, NULL, NULL, paletteSize, 0, NULL); // Clear buffer. if (imageBufferP) { mdlSystem_freeFileThumbnail (&imageBufferP); } }
Please, any hint to solve this question?
Thanks a lot for your help.
Toni