public void produce (Vector v, FileInputStream is) throws IOException
public void produce (Vector v, InputStream is) throws IOException
  public void produce (Vector v, FileInputStream is) throws IOException  {    reader = new BufferedReader (new InputStreamReader (is));    int width = -1, height = -1;    for (int i = 0; i < 2; i++)      {	String line = reader.readLine ();	StringTokenizer st = new StringTokenizer (line);		st.nextToken ();		// #define	st.nextToken ();		// name_[width|height]	if (i == 0)	  width = Integer.parseInt (st.nextToken (), 10);	else	  height = Integer.parseInt (st.nextToken (), 10);      }    for (int i = 0; i < v.size (); i++)      {	ImageConsumer ic = (ImageConsumer) v.elementAt (i);	ic.setDimensions (width, height);	ic.setColorModel (cm);	ic.setHints (ImageConsumer.COMPLETESCANLINES		     | ImageConsumer.SINGLEFRAME		     | ImageConsumer.SINGLEPASS		     | ImageConsumer.TOPDOWNLEFTRIGHT);      }    /* skip to the byte array */    while (reader.read () != '{') { }    /* loop through each scanline */    for (int line = 0; line < height; line++)      {	int scanline[] = getScanline (reader, width);	for (int i = 0; i < v.size (); i++)	  {	    ImageConsumer ic = (ImageConsumer) v.elementAt (i);	    ic.setPixels (0, 0 + line, width, 1, cm, scanline, 0, width);	  }      }    /* tell each ImageConsumer that we're finished */    for (int i = 0; i < v.size (); i++)      {	ImageConsumer ic = (ImageConsumer) v.elementAt (i);	ic.imageComplete (ImageConsumer.STATICIMAGEDONE);      }  }    