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;
}