This is rleprint.c in view mode; [Download] [Up]
/*
* This software is copyrighted as noted below. It may be freely copied,
* modified, and redistributed, provided that the copyright notice is
* preserved on all copies.
*
* There is no warranty or other guarantee of fitness for this software,
* it is provided solely "as is". Bug reports or fixes may be sent
* to the author, who may or may not act on them as he desires.
*
* You may not include this software in a program or other software product
* without supplying the source, or without informing the end-user that the
* source is available for no extra charge.
*
* If you modify this software, you should include a notice giving the
* name of the person performing the modification, the date of modification,
* and the reason for such modification.
*/
/*
* rleprint.c - Print all the pixel values in an RLE file.
*
* Author: Spencer W. Thomas
* EECS Dept.
* University of Michigan
* Date: Tue Jun 5 1990
* Copyright (c) 1990, University of Michigan
*/
#include <stdio.h>
#include <rle.h>
#ifdef USE_STDLIB_H
#include <stdlib.h>
#endif
#define MALLOC_ERR {fprintf(stderr, "%s: ran out of heap space\n", \
cmd_name( argv ));exit(-2);}
void
main(argc, argv)
int argc;
char *argv[];
{
char *infname = NULL;
int i, j;
rle_hdr in_hdr;
rle_pixel **rows0;
int chan;
int rle_cnt, rle_err;
if ( scanargs( argc, argv, "% infile%s", &infname ) == 0 )
exit( 1 );
in_hdr.rle_file = rle_open_f( "rleprint", infname, "r" );
for ( rle_cnt = 0;
(rle_err = rle_get_setup( &in_hdr )) == RLE_SUCCESS;
rle_cnt++ )
{
if (rle_row_alloc( &in_hdr, &rows0 ))
MALLOC_ERR;
for ( j = in_hdr.ymin; j <= in_hdr.ymax ; j++ )
{
rle_getrow(&in_hdr, rows0 );
for ( i = in_hdr.xmin; i <= in_hdr.xmax; i++ )
{
for ( chan = 0; chan < in_hdr.ncolors; chan++ )
printf( "%d ", rows0[chan][i] );
printf( "\n" );
}
}
rle_row_free( &in_hdr, rows0 );
}
/* Check for an error. EOF or EMPTY is ok if at least one image
* has been read. Otherwise, print an error message.
*/
if ( rle_cnt == 0 || (rle_err != RLE_EOF && rle_err != RLE_EMPTY) )
rle_get_error( rle_err, cmd_name( argv ), infname );
exit( 0 );
}
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.