Initial commit
This commit is contained in:
commit
7cdac8ded9
45 changed files with 7275 additions and 0 deletions
60
ppm/ppm.cpp
Normal file
60
ppm/ppm.cpp
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
//------------------------------------------------------------------------------
|
||||
// File : ppm.cpp
|
||||
//------------------------------------------------------------------------------
|
||||
// GLVU : Copyright 1997 - 2002
|
||||
// The University of North Carolina at Chapel Hill
|
||||
//------------------------------------------------------------------------------
|
||||
// Permission to use, copy, modify, distribute and sell this software and its
|
||||
// documentation for any purpose is hereby granted without fee, provided that
|
||||
// the above copyright notice appear in all copies and that both that copyright
|
||||
// notice and this permission notice appear in supporting documentation.
|
||||
// Binaries may be compiled with this software without any royalties or
|
||||
// restrictions.
|
||||
//
|
||||
// The University of North Carolina at Chapel Hill makes no representations
|
||||
// about the suitability of this software for any purpose. It is provided
|
||||
// "as is" without express or implied warranty.
|
||||
|
||||
//============================================================================
|
||||
// ppm.cpp : Portable Pixel Map image format module
|
||||
//============================================================================
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
#define PPM_VERBOSE 0
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// READS AN IMAGE IN FROM A PPM FILE. RETURNS THE COLOR RGB ARRAY AND DIMENSIONS
|
||||
// PERFORMS AUTO-ALLOCATION OF Color ARRAY IF SET TO NULL BEFORE CALLING; OTHERWISE
|
||||
// ASSUMES THAT COLOR HAS BEEN PRE-ALLOCED.
|
||||
//----------------------------------------------------------------------------
|
||||
void LoadPPM(const char *FileName, unsigned char* &Color, int &Width, int &Height)
|
||||
{
|
||||
FILE* fp = fopen(FileName, "rb");
|
||||
if (fp==NULL)
|
||||
{ printf("PPM ERROR (ReadPPM) : unable to open %s!\n",FileName);
|
||||
Color=NULL; Width=0; Height=0; return; }
|
||||
int c,s;
|
||||
do{ do { s=fgetc(fp); } while (s!='\n'); } while ((c=fgetc(fp))=='#');
|
||||
ungetc(c,fp);
|
||||
fscanf(fp, "%d %d\n255\n", &Width, &Height);
|
||||
#if PPM_VERBOSE
|
||||
printf("Reading %dx%d Texture [%s]. . .\n", Width, Height, FileName);
|
||||
#endif
|
||||
int NumComponents = Width*Height*3;
|
||||
if (Color==NULL) Color = new unsigned char[NumComponents];
|
||||
fread(Color,NumComponents,1,fp);
|
||||
fclose(fp);
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// Writes an unsigned byte RGB color array out to a PPM file.
|
||||
//----------------------------------------------------------------------------
|
||||
void WritePPM(const char *FileName, unsigned char* Color, int Width, int Height)
|
||||
{
|
||||
FILE* fp = fopen(FileName, "wb");
|
||||
if (fp==NULL) { printf("PPM ERROR (WritePPM) : unable to open %s!\n",FileName); return; }
|
||||
fprintf(fp, "P6\n%d %d\n255\n", Width, Height);
|
||||
fwrite(Color,1,Width*Height*3,fp);
|
||||
fclose(fp);
|
||||
}
|
||||
23
ppm/ppm.hpp
Normal file
23
ppm/ppm.hpp
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
//------------------------------------------------------------------------------
|
||||
// File : ppm.hpp
|
||||
//------------------------------------------------------------------------------
|
||||
// GLVU : Copyright 1997 - 2002
|
||||
// The University of North Carolina at Chapel Hill
|
||||
//------------------------------------------------------------------------------
|
||||
// Permission to use, copy, modify, distribute and sell this software and its
|
||||
// documentation for any purpose is hereby granted without fee, provided that
|
||||
// the above copyright notice appear in all copies and that both that copyright
|
||||
// notice and this permission notice appear in supporting documentation.
|
||||
// Binaries may be compiled with this software without any royalties or
|
||||
// restrictions.
|
||||
//
|
||||
// The University of North Carolina at Chapel Hill makes no representations
|
||||
// about the suitability of this software for any purpose. It is provided
|
||||
// "as is" without express or implied warranty.
|
||||
|
||||
//============================================================================
|
||||
// ppm.hpp : Portable Pixel Map image format module
|
||||
//============================================================================
|
||||
|
||||
void LoadPPM(const char *FileName, unsigned char* &Color, int &Width, int &Height);
|
||||
void WritePPM(const char *FileName, unsigned char* Color, int Width, int Height);
|
||||
Loading…
Add table
Add a link
Reference in a new issue