How can I force a program that uses the DirectXTex library to save a tga file?

85 views Asked by At

How can I use DirectXTex (C++) to open a dds texture, work with channels (invert, swap, etc.) and save simultaneously as a dds and tga file?

I wrote the first code, but for some reason it doesn't work (it doesn't save tga):

#include <DirectXTex.h>

using namespace DirectX;

int main()
{
    ScratchImage    image;
    TexMetadata     metadata;

    LoadFromDDSFile(L"texture.dds", DDS_FLAGS_NONE, &metadata, image);

    metadata            = image.GetMetadata();
    const Image*    img = image.GetImage(0, 0, 0);

    for (size_t i = 0; i < metadata.width * metadata.height; i++)
    {
        img->pixels[i * 4] = 255 - img->pixels[i * 4];
    }

    SaveToTGAFile(*img, L"texture.tga");

    return 0;
}

I set up the project in Visual Studio, the code compiles without errors or warnings.

0

There are 0 answers