/************************************************ * * file ilabel.c * * Functions: This file contains * main * * Purpose: * This program writes simple block letters * the an image file. You can use these * as labels for other images. * * External Calls: * imageio.c - create_image_file * read_image_array * write_image_array * get_image_size * allocate_image_array * free_image_array * * Modifications: * 21 May 1993 - created * 22 August 1998 - modified to work on entire * images at once. * 19 September 1998 - modified to work with * all I O routines in imageio.c. * *************************************************/ #include "cips.h" #define R 9 #define C 7 #define COUNTER_LIMIT 8 #define IE_START 7 #define VAL 200 short **image; /****************************** * * Define all the 9x7 arrays * that contain the characters. * *******************************/ short aperiod[R][C] = { { 0, 0, 0, 0, 0, 0, 0}, { 0, 0, 0, 0, 0, 0, 0}, { 0, 0, 0, 0, 0, 0, 0}, { 0, 0, 0, 0, 0, 0, 0}, { 0, 0, 0, 0, 0, 0, 0}, { 0, 0, 0, 0, 0, 0, 0}, { 0, 0,VAL,VAL, 0, 0, 0}, { 0, 0,VAL,VAL, 0, 0, 0}, { 0, 0, 0, 0, 0, 0, 0}}; short acomma[R][C] = { { 0, 0, 0, 0, 0, 0, 0}, { 0, 0, 0, 0, 0, 0, 0}, { 0, 0, 0, 0, 0, 0, 0}, { 0, 0, 0, 0, 0, 0, 0}, { 0, 0, 0, 0, 0, 0, 0}, { 0, 0, 0, 0, 0, 0, 0}, { 0, 0,VAL,VAL, 0, 0, 0}, { 0, 0,VAL,VAL, 0, 0, 0}, { 0, 0, 0,VAL, 0, 0, 0}}; short aexclam[R][C] = { { 0, 0, 0, 0, 0, 0, 0}, { 0, 0, 0,VAL, 0, 0, 0}, { 0, 0, 0,VAL, 0, 0, 0}, { 0, 0, 0,VAL, 0, 0, 0}, { 0, 0, 0,VAL, 0, 0, 0}, { 0, 0, 0,VAL, 0, 0, 0}, { 0, 0, 0, 0, 0, 0, 0}, { 0, 0, 0,VAL, 0, 0, 0}, { 0, 0, 0, 0, 0, 0, 0}}; short xx[R][C] = { { 0, 0, 0, 0, 0, 0, 0}, { 0, 0, 0, 0, 0, 0, 0}, { 0, 0, 0, 0, 0, 0, 0}, { 0, 0, 0, 0, 0, 0, 0}, { 0, 0, 0, 0, 0, 0, 0}, { 0, 0, 0, 0, 0, 0, 0}, { 0, 0, 0, 0, 0, 0, 0}, { 0, 0, 0, 0, 0, 0, 0}, { 0, 0, 0, 0, 0, 0, 0}}; short aa[R][C] = { { 0, 0, 0, 0, 0, 0, 0}, { 0, 0, 0,VAL, 0, 0, 0}, { 0, 0,VAL, 0,VAL, 0, 0}, { 0,VAL, 0, 0, 0,VAL, 0}, { 0,VAL,VAL,VAL,VAL,VAL, 0}, { 0,VAL, 0, 0, 0,VAL, 0}, { 0,VAL, 0, 0, 0,VAL, 0}, { 0,VAL, 0, 0, 0,VAL, 0}, { 0, 0, 0, 0, 0, 0, 0}}; short ab[R][C] = { { 0, 0, 0, 0, 0, 0, 0}, { 0,VAL,VAL,VAL,VAL, 0, 0}, { 0,VAL, 0, 0, 0,VAL, 0}, { 0,VAL, 0, 0, 0,VAL, 0}, { 0,VAL,VAL,VAL,VAL, 0, 0}, { 0,VAL, 0, 0, 0,VAL, 0}, { 0,VAL, 0, 0, 0,VAL, 0}, { 0,VAL,VAL,VAL,VAL, 0, 0}, { 0, 0, 0, 0, 0, 0, 0}}; short ac[R][C] = { { 0, 0, 0, 0, 0, 0, 0}, { 0, 0,VAL,VAL,VAL, 0, 0}, { 0,VAL, 0, 0, 0,VAL, 0}, { 0,VAL, 0, 0, 0, 0, 0}, { 0,VAL, 0, 0, 0, 0, 0}, { 0,VAL, 0, 0, 0, 0, 0}, { 0,VAL, 0, 0, 0,VAL, 0}, { 0, 0,VAL,VAL,VAL, 0, 0}, { 0, 0, 0, 0, 0, 0, 0}}; short ad[R][C] = { { 0, 0, 0, 0, 0, 0, 0}, { 0,VAL,VAL,VAL,VAL, 0, 0}, { 0,VAL, 0, 0, 0,VAL, 0}, { 0,VAL, 0, 0, 0,VAL, 0}, { 0,VAL, 0, 0, 0,VAL, 0}, { 0,VAL, 0, 0, 0,VAL, 0}, { 0,VAL, 0, 0, 0,VAL, 0}, { 0,VAL,VAL,VAL,VAL, 0, 0}, { 0, 0, 0, 0, 0, 0, 0}}; short ae[R][C] = { { 0, 0, 0, 0, 0, 0, 0}, { 0,VAL,VAL,VAL,VAL,VAL, 0}, { 0,VAL, 0, 0, 0, 0, 0}, { 0,VAL, 0, 0, 0, 0, 0}, { 0,VAL,VAL,VAL,VAL, 0, 0}, { 0,VAL, 0, 0, 0, 0, 0}, { 0,VAL, 0, 0, 0, 0, 0}, { 0,VAL,VAL,VAL,VAL,VAL, 0}, { 0, 0, 0, 0, 0, 0, 0}}; short af[R][C] = { { 0, 0, 0, 0, 0, 0, 0}, { 0,VAL,VAL,VAL,VAL,VAL, 0}, { 0,VAL, 0, 0, 0, 0, 0}, { 0,VAL, 0, 0, 0, 0, 0}, { 0,VAL,VAL,VAL,VAL, 0, 0}, { 0,VAL, 0, 0, 0, 0, 0}, { 0,VAL, 0, 0, 0, 0, 0}, { 0,VAL, 0, 0, 0, 0, 0}, { 0, 0, 0, 0, 0, 0, 0}}; short ag[R][C] = { { 0, 0, 0, 0, 0, 0, 0}, { 0, 0,VAL,VAL,VAL, 0, 0}, { 0,VAL, 0, 0, 0,VAL, 0}, { 0,VAL, 0, 0, 0, 0, 0}, { 0,VAL, 0, 0,VAL,VAL, 0}, { 0,VAL, 0, 0, 0,VAL, 0}, { 0,VAL, 0, 0, 0,VAL, 0}, { 0, 0,VAL,VAL,VAL,VAL, 0}, { 0, 0, 0, 0, 0, 0, 0}}; short ah[R][C] = { { 0, 0, 0, 0, 0, 0, 0}, { 0,VAL, 0, 0, 0,VAL, 0}, { 0,VAL, 0, 0, 0,VAL, 0}, { 0,VAL, 0, 0, 0,VAL, 0}, { 0,VAL,VAL,VAL,VAL,VAL, 0}, { 0,VAL, 0, 0, 0,VAL, 0}, { 0,VAL, 0, 0, 0,VAL, 0}, { 0,VAL, 0, 0, 0,VAL, 0}, { 0, 0, 0, 0, 0, 0, 0}}; short ai[R][C] = { { 0, 0, 0, 0, 0, 0, 0}, { 0,VAL,VAL,VAL,VAL,VAL, 0}, { 0, 0, 0,VAL, 0, 0, 0}, { 0, 0, 0,VAL, 0, 0, 0}, { 0, 0, 0,VAL, 0, 0, 0}, { 0, 0, 0,VAL, 0, 0, 0}, { 0, 0, 0,VAL, 0, 0, 0}, { 0,VAL,VAL,VAL,VAL,VAL, 0}, { 0, 0, 0, 0, 0, 0, 0}}; short aj[R][C] = { { 0, 0, 0, 0, 0, 0, 0}, { 0,VAL,VAL,VAL,VAL,VAL, 0}, { 0, 0, 0,VAL, 0, 0, 0}, { 0, 0, 0,VAL, 0, 0, 0}, { 0, 0, 0,VAL, 0, 0, 0}, { 0,VAL, 0,VAL, 0, 0, 0}, { 0,VAL, 0,VAL, 0, 0, 0}, { 0, 0,VAL, 0, 0, 0, 0}, { 0, 0, 0, 0, 0, 0, 0}}; short ak[R][C] = { { 0, 0, 0, 0, 0, 0, 0}, { 0,VAL, 0, 0, 0,VAL, 0}, { 0,VAL, 0, 0,VAL, 0, 0}, { 0,VAL, 0,VAL, 0, 0, 0}, { 0,VAL,VAL, 0, 0, 0, 0}, { 0,VAL, 0,VAL, 0, 0, 0}, { 0,VAL, 0, 0,VAL, 0, 0}, { 0,VAL, 0, 0, 0,VAL, 0}, { 0, 0, 0, 0, 0, 0, 0}}; short al[R][C] = { { 0, 0, 0, 0, 0, 0, 0}, { 0,VAL, 0, 0, 0, 0, 0}, { 0,VAL, 0, 0, 0, 0, 0}, { 0,VAL, 0, 0, 0, 0, 0}, { 0,VAL, 0, 0, 0, 0, 0}, { 0,VAL, 0, 0, 0, 0, 0}, { 0,VAL, 0, 0, 0, 0, 0}, { 0,VAL,VAL,VAL,VAL,VAL, 0}, { 0, 0, 0, 0, 0, 0, 0}}; short am[R][C] = { { 0, 0, 0, 0, 0, 0, 0}, { 0,VAL, 0, 0, 0,VAL, 0}, { 0,VAL,VAL, 0,VAL,VAL, 0}, { 0,VAL, 0,VAL, 0,VAL, 0}, { 0,VAL, 0,VAL, 0,VAL, 0}, { 0,VAL, 0,VAL, 0,VAL, 0}, { 0,VAL, 0,VAL, 0,VAL, 0}, { 0,VAL, 0,VAL, 0,VAL, 0}, { 0, 0, 0, 0, 0, 0, 0}}; short an[R][C] = { { 0, 0, 0, 0, 0, 0, 0}, { 0,VAL, 0, 0, 0,VAL, 0}, { 0,VAL,VAL, 0, 0,VAL, 0}, { 0,VAL, 0,VAL, 0,VAL, 0}, { 0,VAL, 0,VAL, 0,VAL, 0}, { 0,VAL, 0, 0,VAL,VAL, 0}, { 0,VAL, 0, 0,VAL,VAL, 0}, { 0,VAL, 0, 0, 0,VAL, 0}, { 0, 0, 0, 0, 0, 0, 0}}; short ao[R][C] = { { 0, 0, 0, 0, 0, 0, 0}, { 0, 0,VAL,VAL,VAL, 0, 0}, { 0,VAL, 0, 0, 0,VAL, 0}, { 0,VAL, 0, 0, 0,VAL, 0}, { 0,VAL, 0, 0, 0,VAL, 0}, { 0,VAL, 0, 0, 0,VAL, 0}, { 0,VAL, 0, 0, 0,VAL, 0}, { 0, 0,VAL,VAL,VAL, 0, 0}, { 0, 0, 0, 0, 0, 0, 0}}; short ap[R][C] = { { 0, 0, 0, 0, 0, 0, 0}, { 0,VAL,VAL,VAL,VAL, 0, 0}, { 0,VAL, 0, 0, 0,VAL, 0}, { 0,VAL, 0, 0, 0,VAL, 0}, { 0,VAL,VAL,VAL,VAL, 0, 0}, { 0,VAL, 0, 0, 0, 0, 0}, { 0,VAL, 0, 0, 0, 0, 0}, { 0,VAL, 0, 0, 0, 0, 0}, { 0, 0, 0, 0, 0, 0, 0}}; short aq[R][C] = { { 0, 0, 0, 0, 0, 0, 0}, { 0, 0,VAL,VAL,VAL, 0, 0}, { 0,VAL, 0, 0, 0,VAL, 0}, { 0,VAL, 0, 0, 0,VAL, 0}, { 0,VAL, 0, 0, 0,VAL, 0}, { 0,VAL, 0,VAL, 0,VAL, 0}, { 0,VAL, 0, 0,VAL,VAL, 0}, { 0, 0,VAL,VAL,VAL,VAL, 0}, { 0, 0, 0, 0, 0, 0, 0}}; short ar[R][C] = { { 0, 0, 0, 0, 0, 0, 0}, { 0,VAL,VAL,VAL,VAL, 0, 0}, { 0,VAL, 0, 0, 0,VAL, 0}, { 0,VAL, 0, 0, 0,VAL, 0}, { 0,VAL,VAL,VAL,VAL, 0, 0}, { 0,VAL, 0, 0, 0,VAL, 0}, { 0,VAL, 0, 0, 0,VAL, 0}, { 0,VAL, 0, 0, 0,VAL, 0}, { 0, 0, 0, 0, 0, 0, 0}}; short as[R][C] = { { 0, 0, 0, 0, 0, 0, 0}, { 0, 0,VAL,VAL,VAL, 0, 0}, { 0,VAL, 0, 0, 0,VAL, 0}, { 0,VAL, 0, 0, 0, 0, 0}, { 0, 0,VAL,VAL,VAL, 0, 0}, { 0, 0, 0, 0, 0,VAL, 0}, { 0,VAL, 0, 0, 0,VAL, 0}, { 0, 0,VAL,VAL,VAL, 0, 0}, { 0, 0, 0, 0, 0, 0, 0}}; short at[R][C] = { { 0, 0, 0, 0, 0, 0, 0}, { 0,VAL,VAL,VAL,VAL,VAL, 0}, { 0, 0, 0,VAL, 0, 0, 0}, { 0, 0, 0,VAL, 0, 0, 0}, { 0, 0, 0,VAL, 0, 0, 0}, { 0, 0, 0,VAL, 0, 0, 0}, { 0, 0, 0,VAL, 0, 0, 0}, { 0, 0, 0,VAL, 0, 0, 0}, { 0, 0, 0, 0, 0, 0, 0}}; short au[R][C] = { { 0, 0, 0, 0, 0, 0, 0}, { 0,VAL, 0, 0, 0,VAL, 0}, { 0,VAL, 0, 0, 0,VAL, 0}, { 0,VAL, 0, 0, 0,VAL, 0}, { 0,VAL, 0, 0, 0,VAL, 0}, { 0,VAL, 0, 0, 0,VAL, 0}, { 0,VAL, 0, 0, 0,VAL, 0}, { 0, 0,VAL,VAL,VAL, 0, 0}, { 0, 0, 0, 0, 0, 0, 0}}; short av[R][C] = { { 0, 0, 0, 0, 0, 0, 0}, { 0,VAL, 0, 0, 0,VAL, 0}, { 0,VAL, 0, 0, 0,VAL, 0}, { 0,VAL, 0, 0, 0,VAL, 0}, { 0, 0,VAL, 0,VAL, 0, 0}, { 0, 0,VAL, 0,VAL, 0, 0}, { 0, 0,VAL, 0,VAL, 0, 0}, { 0, 0, 0,VAL, 0, 0, 0}, { 0, 0, 0, 0, 0, 0, 0}}; short aw[R][C] = { { 0, 0, 0, 0, 0, 0, 0}, { 0,VAL, 0, 0, 0,VAL, 0}, { 0,VAL, 0,VAL, 0,VAL, 0}, { 0,VAL, 0,VAL, 0,VAL, 0}, { 0,VAL, 0,VAL, 0,VAL, 0}, { 0, 0,VAL,VAL,VAL, 0, 0}, { 0, 0,VAL,VAL,VAL, 0, 0}, { 0, 0,VAL, 0,VAL, 0, 0}, { 0, 0, 0, 0, 0, 0, 0}}; short ax[R][C] = { { 0, 0, 0, 0, 0, 0, 0}, { 0,VAL, 0, 0, 0,VAL, 0}, { 0,VAL, 0, 0, 0,VAL, 0}, { 0, 0,VAL, 0,VAL, 0, 0}, { 0, 0, 0,VAL, 0, 0, 0}, { 0, 0,VAL, 0,VAL, 0, 0}, { 0,VAL, 0, 0, 0,VAL, 0}, { 0,VAL, 0, 0, 0,VAL, 0}, { 0, 0, 0, 0, 0, 0, 0}}; short ay[R][C] = { { 0, 0, 0, 0, 0, 0, 0}, { 0,VAL, 0, 0, 0,VAL, 0}, { 0,VAL, 0, 0, 0,VAL, 0}, { 0, 0,VAL, 0,VAL, 0, 0}, { 0, 0, 0,VAL, 0, 0, 0}, { 0, 0, 0,VAL, 0, 0, 0}, { 0, 0, 0,VAL, 0, 0, 0}, { 0, 0, 0,VAL, 0, 0, 0}, { 0, 0, 0, 0, 0, 0, 0}}; short az[R][C] = { { 0, 0, 0, 0, 0, 0, 0}, { 0,VAL,VAL,VAL,VAL,VAL, 0}, { 0, 0, 0, 0, 0,VAL, 0}, { 0, 0, 0, 0,VAL, 0, 0}, { 0, 0, 0,VAL, 0, 0, 0}, { 0, 0,VAL, 0, 0, 0, 0}, { 0,VAL, 0, 0, 0, 0, 0}, { 0,VAL,VAL,VAL,VAL,VAL, 0}, { 0, 0, 0, 0, 0, 0, 0}}; short a1[R][C] = { { 0, 0, 0, 0, 0, 0, 0}, { 0, 0, 0,VAL, 0, 0, 0}, { 0, 0,VAL,VAL, 0, 0, 0}, { 0,VAL, 0,VAL, 0, 0, 0}, { 0, 0, 0,VAL, 0, 0, 0}, { 0, 0, 0,VAL, 0, 0, 0}, { 0, 0, 0,VAL, 0, 0, 0}, { 0,VAL,VAL,VAL,VAL,VAL, 0}, { 0, 0, 0, 0, 0, 0, 0}}; short a2[R][C] = { { 0, 0, 0, 0, 0, 0, 0}, { 0, 0,VAL,VAL,VAL, 0, 0}, { 0,VAL, 0, 0, 0,VAL, 0}, { 0, 0, 0, 0,VAL, 0, 0}, { 0, 0, 0,VAL, 0, 0, 0}, { 0, 0,VAL, 0, 0, 0, 0}, { 0,VAL, 0, 0, 0, 0, 0}, { 0,VAL,VAL,VAL,VAL,VAL, 0}, { 0, 0, 0, 0, 0, 0, 0}}; short a3[R][C] = { { 0, 0, 0, 0, 0, 0, 0}, { 0, 0,VAL,VAL,VAL, 0, 0}, { 0,VAL, 0, 0, 0,VAL, 0}, { 0, 0, 0, 0, 0,VAL, 0}, { 0, 0,VAL,VAL,VAL, 0, 0}, { 0, 0, 0, 0, 0,VAL, 0}, { 0,VAL, 0, 0, 0,VAL, 0}, { 0, 0,VAL,VAL,VAL, 0, 0}, { 0, 0, 0, 0, 0, 0, 0}}; short a4[R][C] = { { 0, 0, 0, 0, 0, 0, 0}, { 0,VAL, 0,VAL, 0, 0, 0}, { 0,VAL, 0,VAL, 0, 0, 0}, { 0,VAL, 0,VAL, 0, 0, 0}, { 0,VAL,VAL,VAL,VAL,VAL, 0}, { 0, 0, 0,VAL, 0, 0, 0}, { 0, 0, 0,VAL, 0, 0, 0}, { 0, 0, 0,VAL, 0, 0, 0}, { 0, 0, 0, 0, 0, 0, 0}}; short a5[R][C] = { { 0, 0, 0, 0, 0, 0, 0}, { 0,VAL,VAL,VAL,VAL,VAL, 0}, { 0,VAL, 0, 0, 0, 0, 0}, { 0,VAL, 0, 0, 0, 0, 0}, { 0,VAL,VAL,VAL,VAL, 0, 0}, { 0, 0, 0, 0, 0,VAL, 0}, { 0,VAL, 0, 0, 0,VAL, 0}, { 0, 0,VAL,VAL,VAL, 0, 0}, { 0, 0, 0, 0, 0, 0, 0}}; short a6[R][C] = { { 0, 0, 0, 0, 0, 0, 0}, { 0, 0,VAL,VAL,VAL, 0, 0}, { 0,VAL, 0, 0, 0,VAL, 0}, { 0,VAL, 0, 0, 0, 0, 0}, { 0,VAL,VAL,VAL,VAL, 0, 0}, { 0,VAL, 0, 0, 0,VAL, 0}, { 0,VAL, 0, 0, 0,VAL, 0}, { 0, 0,VAL,VAL,VAL, 0, 0}, { 0, 0, 0, 0, 0, 0, 0}}; short a7[R][C] = { { 0, 0, 0, 0, 0, 0, 0}, { 0,VAL,VAL,VAL,VAL,VAL, 0}, { 0, 0, 0, 0, 0,VAL, 0}, { 0, 0, 0, 0, 0,VAL, 0}, { 0, 0, 0, 0,VAL, 0, 0}, { 0, 0, 0,VAL, 0, 0, 0}, { 0, 0,VAL, 0, 0, 0, 0}, { 0,VAL, 0, 0, 0, 0, 0}, { 0, 0, 0, 0, 0, 0, 0}}; short a8[R][C] = { { 0, 0, 0, 0, 0, 0, 0}, { 0, 0,VAL,VAL,VAL, 0, 0}, { 0,VAL, 0, 0, 0,VAL, 0}, { 0,VAL, 0, 0, 0,VAL, 0}, { 0, 0,VAL,VAL,VAL, 0, 0}, { 0,VAL, 0, 0, 0,VAL, 0}, { 0,VAL, 0, 0, 0,VAL, 0}, { 0, 0,VAL,VAL,VAL, 0, 0}, { 0, 0, 0, 0, 0, 0, 0}}; short a9[R][C] = { { 0, 0, 0, 0, 0, 0, 0}, { 0, 0,VAL,VAL,VAL, 0, 0}, { 0,VAL, 0, 0, 0,VAL, 0}, { 0,VAL, 0, 0, 0,VAL, 0}, { 0, 0,VAL,VAL,VAL,VAL, 0}, { 0, 0, 0, 0, 0,VAL, 0}, { 0, 0, 0, 0, 0,VAL, 0}, { 0, 0, 0, 0, 0,VAL, 0}, { 0, 0, 0, 0, 0, 0, 0}}; short a0[R][C] = { { 0, 0, 0, 0, 0, 0, 0}, { 0, 0,VAL,VAL,VAL, 0, 0}, { 0,VAL, 0, 0,VAL,VAL, 0}, { 0,VAL, 0, 0,VAL,VAL, 0}, { 0,VAL, 0,VAL, 0,VAL, 0}, { 0,VAL, 0,VAL, 0,VAL, 0}, { 0,VAL,VAL, 0, 0,VAL, 0}, { 0, 0,VAL,VAL,VAL, 0, 0}, { 0, 0, 0, 0, 0, 0, 0}}; main(argc, argv) int argc; char *argv[]; { int l=1, w=1; int counter=0, i, j, il, ie=7, ll, le; long length, width; if(argc < 5){ printf("\n usage: ilabel file-name il ie text" "\n the file-name image must already exist"); exit(0); } /**************************************** * * Ensure the file exists. * Allocate an image array and read * the image. * ****************************************/ if(does_not_exist(argv[1])){ printf("\nFile %s does not exist \nCreate it", argv[1]); exit(0); } /* ends if does not exist */ else{ /* else it does exist */ get_image_size(argv[1], &length, &width); image = allocate_image_array(length, width); read_image_array(argv[1], image); } /* ends else it does exist */ il = atoi(argv[2]); ie = atoi(argv[3]); /****************************** * * Loop through the text * arguments and place the * letter arrays into the * image. * *******************************/ printf("\n"); for(i=4; i