0

我正在尝试在 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
4

2 回答 2

0

您可能会错过调用FreeImage_Initialise(除非您使用的是 DLL)。

于 2014-03-06T23:39:58.210 回答
0

有时 freeimage 无法从 FreeImage_GetFileType 读取 FREE_IMAGE_FORMAT

所以建议检查 fif 的有效性,如果 fif == FIF_UNKNOWN 使用 FreeImage_GetFIFFromFilename

于 2015-09-21T17:26:16.200 回答