/****************************************************************************
* NCSA HDF *
* Software Development Group *
* National Center for Supercomputing Applications *
* University of Illinois at Urbana-Champaign *
* 605 E. Springfield, Champaign IL 61820 *
* *
* For conditions of distribution and use, see the accompanying *
* hdf/COPYING file. *
* *
****************************************************************************/
#include "hdf.h"
#include "mfhdf.h"
#include "hrepack_pal.h"
/*-------------------------------------------------------------------------
* Function: copy_pal
*
* Purpose: list/copy lone palettes
*
*-------------------------------------------------------------------------
*/
int copy_pal(char* infname,char* outfname,int32 infile_id,int32 outfile_id,
table_t *table,options_t *options)
{
uint8 palette_data[256*3];
intn nPals, j;
uint16 ref;
if ( options->trip==0 )
{
return SUCCESS;
}
DFPrestart();
if((nPals = DFPnpals (infname))==FAIL ) {
printf( "Failed to get palettes in <%s>\n", infname);
return FAIL;
}
for ( j = 0; j < nPals; j++)
{
if (DFPgetpal(infname, (VOIDP)palette_data)==FAIL ) {
printf( "Failed to read palette <%d> in <%s>\n", j, infname);
continue;
}
ref=DFPlastref();
/* check if already inserted in image */
if ( table_search(table,DFTAG_IP8,ref)>=0 ){
continue;
}
if (DFPaddpal(outfname,palette_data)==FAIL){
printf( "Failed to write palette in <%s>\n", outfname);
return FAIL;
}
}
return SUCCESS;
}
syntax highlighted by Code2HTML, v. 0.9.1