freeimage.h
FreeImage_GetFIFExtensionList
DLL_API const char *DLL_CALLCONV FreeImage_GetFIFExtensionList(FREE_IMAGE_FORMAT fif);
Devuelve una lista de extensiones de fichero, delimitada con comas, que describe los formatos de fichero que el plugin dado puede leer y/o escribir.
/** Builds a series of string pairs that specify filters you can apply to load a file. The filter string is to be used by a 'File Open' dialog box (GetOpenFileName or CFileDialog). @param szFilter Input and output parameter. szFilter is an array of char whose length should be 2048 or more. @return Returns the number of supported import formats */ int GetOpenFilterString(char *szFilter) { int i, iCount; char Filter[2048]; char *token; // Build a string for 'All image files' Filter[0] = '\0'; for(i = 0; i < FreeImage_GetFIFCount(); i++) { if(FreeImage_FIFSupportsReading((FREE_IMAGE_FORMAT)i)) { strcat(Filter, FreeImage_GetFIFExtensionList((FREE_IMAGE_FORMAT)i)); strcat(Filter, ","); } } Filter[strlen(Filter)-1] = '\0'; strcpy(szFilter, "All image files|"); token = strtok(Filter, ","); while(token != NULL) { strcat(szFilter, "*."); strcat(szFilter, token); strcat(szFilter, ";"); // get next token token = strtok(NULL, ","); } szFilter[strlen(szFilter)-1] = '|'; // Build a string for 'All files' strcat(szFilter, "All Files (*.*)|*.*|"); // Build a string for each format Filter[0] = '\0'; iCount = 0; for(i = 0; i < FreeImage_GetFIFCount(); i++) { if(FreeImage_FIFSupportsReading((FREE_IMAGE_FORMAT)i)) { // Description sprintf(Filter, "%s (%s)|", FreeImage_GetFIFDescription((FREE_IMAGE_FORMAT)i), FreeImage_GetFIFExtensionList((FREE_IMAGE_FORMAT)i)); strcat(szFilter, Filter); // Extension(s) strcpy(Filter, FreeImage_GetFIFExtensionList((FREE_IMAGE_FORMAT)i)); token = strtok(Filter, ","); while(token != NULL) { strcat(szFilter, "*."); strcat(szFilter, token); strcat(szFilter, ";"); // get next token token = strtok(NULL, ","); } szFilter[strlen(szFilter)-1] = '|'; iCount++; } } strcat(szFilter, "|"); return iCount; }