[comp.sys.atari.st] AIM file format

FXDDR@ALASKA.BITNET.UUCP (05/16/87)

Date:     Fri, 15 May 87 20:40 ADT
From:     <FXDDR@ALASKA.BITNET>
Subject:  AIM file format
To:       info-atari16@score.stanford.edu
X-Original-To:  "info-atari16@score.stanford.edu", FXDDR

I finally had time to check out the AIM image file format.  As mentioned
previously, the image files are 256x256 pixels, 1 pixel = 1 byte for 256
grey levels.  The first byte of the file is the upper left corner.  The
files look _very_ nice printed on the Apple LaserWriter...perhaps some
sufficiently bored programmer will write a program to dump them on a dot
matrix printer.
Following is a short generic no-frills C program to spit out a PostScript
rendition of an AIM image file.
Don Rice, FXDDR@ALASKA.BITNET
---Cut here for trivial AIM-to-PS program---
#include stdio
main()
{
        int ch, count;
        FILE *in, *out;

        if( (in = fopen( "trui.im", "r" )) == NULL ) exit();
        if( (out = fopen( "aim.ps", "w" )) == NULL ) exit();
        fprintf( out, "\004\n/picstr 256 string def\n" );
        fprintf( out, "45 140 translate\n" );
        fprintf( out, "504 504 scale\n" );
        fprintf( out, "256 256 8\n" );
        fprintf( out, "[256 0 0 -256 0 256]\n" );
        fprintf( out, "{currentfile\n" );
        fprintf( out, " picstr readhexstring pop}\n" );
        fprintf( out, "image\n" );
        count = 0;
        while( (ch = fgetc( in )) != EOF )
        {
                fprintf( out, "%02X", (unsigned char) ch );
                if( ++count >= 32 )
                {
                        fprintf( out, "\n" );
                        count = 0;
                }
        }
        if( count > 0 ) fprintf( out, "\n" );
        fprintf( out, "showpage\n\004\n" );
        fclose( out );
        fclose( in );
}       /* main */
---End of trivial AIM-to-PS program---