资源简介
TGA格式(Tagged Graphics)是由美国Truevision公司为其显示卡开发的一种图像文件格式,文件后缀为".tga",已被国际上的图形、图像工业所接受。 TGA的结构比较简单,属于一种图形、图像数据的通用格式,在多媒体领域有很大影响,是计算机生成图像向电视转换的一种首选格式。 TGA图像格式最大的特点是可以做出不规则形状的图形、图像文件,一般图形、图像文件都为四方形,若需要有圆形、菱形甚至是缕空的图像文件时,TGA可就派上用场了! TGA格式支持压缩,使用不失真的压缩算法。 TGA格式是Truevision公司设计并负责解释的图像格式。TGA也包含了多种变体,TGA文件的第三个字节用来区别不是TGA的文件。
代码片段和文件信息
#include
#include
using namespace std;
#define WIDTH_RES 640
#define HEIGHT_RES 480
unsigned char *PB = new unsigned char[WIDTH_RES*HEIGHT_RES*3];
void WriteTGA();//生成文件
int main()
{
int Index = 0;
float r = 0 g = 0 b = 0;
for (int y = 0; y < HEIGHT_RES; y++)
{
if (y == 0) cout << “ 0% has completed...“ << endl;
if (y == (int)(HEIGHT_RES * 0.4)) cout << “ 25% has completed...“ << endl;
if (y == (int)(HEIGHT_RES * 0.5)) cout << “ 50% has completed...“ << endl;
if (y == (int)(HEIGHT_RES * 0.75)) cout << “ 75% has completed...“ << endl;
if (y == (int)(HEIGHT_RES - 1)) cout << “100% has completed...“ << endl;
r = y*256 / HEIGHT_RES;
for (int x = 0; x < WIDTH_RES; x++ Index += 3)
{
g = x * 256 / WIDTH_RES;
PB[Index + 0] = (int)b;
PB[Index + 1] = (int)g;
PB[Index + 2] = (int)r;//以BGR形式存储
}
}
WriteTGA();//生成文件
if (PB) delete[] PB;
return 0;
}
void WriteTGA()//生成文件
{
FILE *pFile = 0;
unsigned char tgaHeader[12] = { 0 0 2 0 0 0 0 0 0 0 0 0 };//文件头
unsigned char header[6];//前六位
unsigned char bits = 24;//24位
int colorMode = 3;//RGB
header[0] = WIDTH_RES % 256; header[1] = WIDTH_RES / 256; header[2] = HEIGHT_RES % 256;
header[3] = HEIGHT_RES / 256; header[4] = bits; header[5] = 0;
pFile = fopen(“picture.tga“ “wb“);//以写的方式打开文件
fwrite(tgaHeader sizeof(tgaHeader) 1 pFile);//写入文件头
fwrite(header sizeof(header) 1 pFile);//写入信息
fwrite(PB WIDTH_RES*HEIGHT_RES*colorMode 1 pFile);//写入图像数据
fclose(pFile);
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-08-10 13:36 tga\
目录 0 2018-08-10 13:36 tga\tga\
文件 876 2018-08-10 12:31 tga\tga.sln
文件 9728 2018-08-10 12:31 tga\tga.suo
文件 18944 2018-08-10 13:36 tga\tga.v12.suo
文件 921618 2018-08-10 13:34 tga\tga\picture.tga
文件 3216 2018-08-10 12:31 tga\tga\tga.vcxproj
文件 941 2018-08-10 12:31 tga\tga\tga.vcxproj.filters
文件 143 2018-08-10 12:31 tga\tga\tga.vcxproj.user
文件 1616 2018-08-10 13:34 tga\tga\源.cpp
- 上一篇:C++前中后缀表达式转表达式二叉树
- 下一篇:100套题库全国计算机二级c语言
评论
共有 条评论