/** * Print an image to the printer. * * Size modifiers are: * - Printer::IMG_DEFAULT (leave image at original size) * - Printer::IMG_DOUBLE_WIDTH * - Printer::IMG_DOUBLE_HEIGHT * * See the example/ folder for detailed examples. * * The functions bitImage() and bitImageColumnFormat() take the same * parameters, and can be used if your printer doesn't support the newer * graphics commands. * * @param EscposImage $img The image to print. * @param int $size Size modifier for the image. Must be either `Printer::IMG_DEFAULT` * (default), or any combination of the `Printer::IMG_DOUBLE_HEIGHT` and * `Printer::IMG_DOUBLE_WIDTH` flags. */ public function graphics(EscposImage $img, $size = Printer::IMG_DEFAULT) { self::validateInteger($size, 0, 3, __FUNCTION__); $rasterData = $img->toRasterFormat(); $imgHeader = Printer::dataHeader(array($img->getWidth(), $img->getHeight()), true); $tone = '0'; $colors = '1'; $xm = ($size & self::IMG_DOUBLE_WIDTH) == Printer::IMG_DOUBLE_WIDTH ? chr(2) : chr(1); $ym = ($size & self::IMG_DOUBLE_HEIGHT) == Printer::IMG_DOUBLE_HEIGHT ? chr(2) : chr(1); $header = $tone . $xm . $ym . $colors . $imgHeader; $this->wrapperSendGraphicsData('0', 'p', $header . $rasterData); $this->wrapperSendGraphicsData('0', '2'); }