⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tga2image.cpp

📁 冰人引擎,本2d游戏引擎定位于游戏次中层引擎。他不像CDX等引擎那样
💻 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 + -