question: protected void printBand ( byte [ ] bgrData , int x , int y , int width , int height ) throws PrinterException { mPSStream . println ( IMAGE_SAVE ) ; int psBytesPerRow = 3 * width ; while ( psBytesPerRow > MAX_PSSTR ) { psBytesPerRow /= 2 ; } mPSStream . println ( psBytesPerRow + IMAGE_STR ) ; mPSStream . println ( "[" + width + " 0 " + "0 " + height + " " + x + " " + y + "]concat" ) ; mPSStream . println ( width + " " + height + " " + 8 + "[" + width + " 0 " + "0 " + - height + " 0 " + height + "]" + "/imageSrc load false 3 colorimage" ) ; int index = 0 ; byte [ ] rgbData = new byte [ width * 3 ] ; try { for ( int i = 0 ; i < height ; i ++ ) { index = swapBGRtoRGB ( bgrData , index , rgbData ) ; byte [ ] encodedData = rlEncode ( rgbData ) ; byte [ ] asciiData = ascii85Encode ( encodedData ) ; mPSStream . write ( asciiData ) ; mPSStream . println ( "" ) ; } } catch ( IOException e ) { throw new PrinterIOException ( e ) ; } mPSStream . println ( IMAGE_RESTORE ) ; }
target:  Prints the contents of the array of ints, 'data' to the current page. The band is placed at the location (x, y) in device coordinates on the page. The width and height of the band is specified by the caller. Currently the data is 24 bits per pixel in BGR format.