我正在尝试在FreeImage中加载.png
和.DDS
文件,但宽度和高度始终为零。
#include <stdio.h>
#include<stdlib.h>
#include <FreeImage.h>
int main(void){
const char* path = "Signal.png";
printf("Loading image %s\n", path);
FIBITMAP* image = FreeImage_Load(FreeImage_GetFileType(path), path, 0);
unsigned int w = FreeImage_GetWidth(image);
unsigned int h = FreeImage_GetHeight(image);
printf("Width: %u Height: %u\n", w, h);
}
输出:
Loading image Signal.png
Width: 0 Height: 0
答案 0 :(得分:0)
您可能错过了对FreeImage_Initialise
的调用(除非您使用的是DLL)。
答案 1 :(得分:0)
有时freeimage不会从FreeImage_GetFileType中读取FREE_IMAGE_FORMAT
因此建议检查fif的有效性,如果是fif == FIF_UNKNOWN则使用FreeImage_GetFIFFromFilename