0

我的名字是 Miguel,我试图在一个 .bmp 中获取每个像素,但到目前为止,当我初始化位图时,它没有得到任何值,所以我猜我初始化它是错误的。这是我当前的代码:(片段)

Bitmap *PerlinImage;

void OpenPerlinFile()
{
    PerlinImage = new Bitmap((WCHAR*)"C:\\Users\\Utilizador\\Documents\\Visual Studio 2012\\Projects\\Cube3D\\IDTech_JavaOpenGL_Port\\perlinNoise.bmp");
}

// END

void Initialize(void)
{
    OpenPerlinFile();

    Unit tempunit;
    Color color; 

    int ccount = 0;
    for (int h = 0; h != PerlinImage->GetHeight(); h++)
......

现在,你能看看我的代码,也许可以预测我做错了什么。

谢谢你

米格尔·彼得森

4

2 回答 2

1

假设您的路径正确,则如下:

PerlinImage = new Bitmap((WCHAR*)"C:\\Users\\Utilizador\\Documents\\Visual Studio 2012\\Projects\\Cube3D\\IDTech_JavaOpenGL_Port\\perlinNoise.bmp");

应该:

PerlinImage = new Bitmap(_T("C:\\Users\\Utilizador\\Documents\\Visual Studio 2012\\Projects\\Cube3D\\IDTech_JavaOpenGL_Port\\perlinNoise.bmp"));

或者,没有辅助宏:

PerlinImage = new Bitmap(L"C:\\Users\\Utilizador\\Documents\\Visual Studio 2012\\Projects\\Cube3D\\IDTech_JavaOpenGL_Port\\perlinNoise.bmp");
于 2012-08-25T23:53:31.823 回答
0

需要调用 GdiplusStartup。还要检查 PerlinImage 的值,如果它不为 NULL,那么您可以使用 PerlinImage->GetLastStatus() 检查错误。如果 PerlinImage 为 NULL,那么您可能会忘记调用 GdiplusStartup。

于 2012-09-05T01:47:58.517 回答