Browse Source

save img to bmp

master
blobt 4 years ago
parent
commit
7f9b02a575
  1. BIN
      .vs/shader2/v14/.suo
  2. 2
      main.cpp
  3. 34
      misc.cpp
  4. 1
      misc.h

BIN
.vs/shader2/v14/.suo

2
main.cpp

@ -163,7 +163,7 @@ INT WINAPI WinMain(HINSTANCE hinstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine
glUniformMatrix4fv(PLocation, 1, GL_FALSE, glm::value_ptr(projection));
glUniformMatrix4fv(NMLocation, 1, GL_FALSE, glm::value_ptr(normalMatrix));
glBindTexture(GL_TEXTURE_2D, mainTexture);
glBindTexture(GL_TEXTURE_2D, secondTexture);
glUniform1i(textureLocation, 0);
glBindBuffer(GL_ARRAY_BUFFER, vbo);

34
misc.cpp

@ -1,6 +1,7 @@
#include "misc.h"
#include "FreeImage.h"
#include <stdio.h>
#include <windows.h>
#include "FreeImage.h"
#pragma comment(lib,"FreeImage.lib")
@ -251,7 +252,36 @@ GLuint CreateTextureFromDds(const char * imagePath)
glCompressedTexImage2D(GL_TEXTURE_2D, 0, GL_COMPRESSED_RGBA_S3TC_DXT1_EXT, width, height, 0, pixelSize, pixelData);
glBindTexture(GL_TEXTURE_2D, 0);
delete imgData;
return texture;
}
void SaveImage(const char*imagePath, unsigned char*imgData, int width, int height)
{
FILE*pFile = fopen(imagePath, "wb");
if (pFile)
{
BITMAPFILEHEADER bfh;
memset(&bfh, 0, sizeof(BITMAPFILEHEADER));
bfh.bfType = 0x4D42;
bfh.bfSize = sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER) + width*height * 3;
bfh.bfOffBits = sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER);
fwrite(&bfh, sizeof(BITMAPFILEHEADER), 1, pFile);
BITMAPINFOHEADER bih;
memset(&bih, 0, sizeof(BITMAPINFOHEADER));
bih.biWidth = width;
bih.biHeight = height;
bih.biBitCount = 24;
bih.biSize = sizeof(BITMAPINFOHEADER);
fwrite(&bih, sizeof(BITMAPINFOHEADER), 1, pFile);
unsigned char temp = 0;
for (int i = 0; i<width*height * 3; i += 3)
{
temp = imgData[i + 2];
imgData[i + 2] = imgData[i];
imgData[i] = temp;
}
fwrite(imgData, 1, width*height * 3, pFile);
fclose(pFile);
}
}

1
misc.h

@ -8,3 +8,4 @@ GLuint CreateGPUProgram(const char* vsShaderPath, const char* fsShaderPath);
GLuint CreateTextureFromBMP(const char* imagePath);
GLuint CreateTextureFromFile(const char* imagePath);
GLuint CreateTextureFromDds(const char* imagePath);
void SaveImage(const char* imgPath, unsigned char* imgData, int width, int height);
Loading…
Cancel
Save