📄 tga2image.cpp
字号:
#include "StdAfx.h"
#include "tga2image.h"
CTga2Image::CTga2Image(void)
{
m_pImageBuffer = NULL;
}
CTga2Image::~CTga2Image(void)
{
if(m_pImageBuffer != NULL)
{
delete []m_pImageBuffer;
}
}
bool CTga2Image::LoadTga(char* file)
{
stTgaHeader TgaHeader;
FILE* fp;
fp = fopen(file,"rb");
if(fp == NULL)
{
DebugMsg("Read tga file Error\n");
return false;
}
//读tga文件头
fread( (void*)&TgaHeader, sizeof(stTgaHeader), 1, fp );
//检测文件格式
if( TgaHeader.bImageType != TGA_UNCPSCOLOR && TgaHeader.bPixelBit != 32 )
{
DebugMsg("The tga file is not 32bit and uncomprass");
fclose(fp);
return false;
}
m_dwWidth = TgaHeader.wWidth;
m_dwHeight = TgaHeader.wHeight;
//创建图片缓冲,因为是32bit的tga,按unsigned long读
m_pImageBuffer = new DWORD[TgaHeader.wWidth*TgaHeader.wHeight];
//读入图片数据到图片缓冲
fread(m_pImageBuffer,sizeof(DWORD),TgaHeader.wWidth*TgaHeader.wHeight,fp);
//运算pitch
m_dwPitch = m_dwWidth*sizeof(DWORD);
fclose(fp);
return true;
}
bool CTga2Image::SaveImage(char* file)
{
stImageHeader ImageHeader; //自定义图像文件头
ImageHeader.dwType = m_dwType;
ImageHeader.dwWidth = m_dwWidth;
ImageHeader.dwHeight = m_dwHeight;
ImageHeader.dwColorKey = m_dwColorKey;
ImageHeader.dwPitch = m_dwPitch;
ImageHeader.dwMaxFrame = m_dwMaxFrame;
ImageHeader.dwFrameWidth = m_dwFrameWidth;
ImageHeader.dwFrameHeight = m_dwFrameHeight;
FILE* fp;
fp = fopen(file,"wb");
if(fp == NULL)
{
DebugMsg("Write img file Error\n");
return false;
}
//写文件头
fwrite((void*)&ImageHeader,sizeof(stImageHeader),1,fp);
//写数据
if(m_pImageBuffer == NULL)
{
DebugMsg("Write img data error\n");
return false;
}
fwrite(m_pImageBuffer,sizeof(DWORD),m_dwWidth*m_dwHeight,fp);
fclose(fp);
return true;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -