expectException(Exception::class); $this->loadAndCheckImg('not a real file.png', 1, 1, null, null); } /** * @medium */ public function testBlack() { foreach (array('bmp', 'gif', 'png') as $format) { $this->loadAndCheckImg('canvas_black.' . $format, 1, 1, "\x80", array("\x80")); } } /** * @medium */ public function testBlackTransparent() { foreach (array('gif', 'png') as $format) { $this->loadAndCheckImg('black_transparent.' . $format, 2, 2, "\xc0\x00", array("\x80\x80")); } } /** * @medium */ public function testBlackWhite() { foreach (array('bmp', 'png', 'gif') as $format) { $this->loadAndCheckImg('black_white.' . $format, 2, 2, "\xc0\x00", array("\x80\x80")); } } /** * @medium */ public function testBlackWhiteTall() { // We're very interested in correct column format chopping here at 8 pixels $this->loadAndCheckImg( 'black_white_tall.png', 2, 16, "\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00\x00\x00\x00\x00\x00", array("\xff\xff", "\x00\x00") ); } /** * @medium */ public function testWhite() { foreach (array('bmp', 'png', 'gif') as $format) { $this->loadAndCheckImg('canvas_white.' . $format, 1, 1, "\x00", array("\x00")); } } /** * Load an EscposImage and run a check. */ private function loadAndCheckImg($fn, $width, $height, $rasterFormat = null, $columnFormat = null) { $onDisk = ($fn === null ? null : (dirname(__FILE__) . "/resources/$fn")); // With optimisations $imgOptimised = new NativeEscposImage($onDisk, true); $this->checkImg($imgOptimised, $width, $height, $rasterFormat, $columnFormat); // ... and without $imgUnoptimised = new NativeEscposImage($onDisk, false); $this->checkImg($imgUnoptimised, $width, $height, $rasterFormat, $columnFormat); } /** * Check image against known width, height, output. */ private function checkImg(EscposImage $img, $width, $height, $rasterFormatExpected = null, $columnFormatExpected = null) { $rasterFormatActual = $img->toRasterFormat(); $columnFormatActual = $img->toColumnFormat(); if ($rasterFormatExpected === null) { echo "\nImage was: " . $img->getWidth() . "x" . $img->getHeight() . ", raster data \"" . friendlyBinary($rasterFormatActual) . "\""; } if ($columnFormatExpected === null) { echo "\nImage was: " . $img->getWidth() . "x" . $img->getHeight() . ", column data \"" . friendlyBinary($columnFormatActual) . "\""; } $this->assertEquals($height, $img->getHeight()); $this->assertEquals($width, $img->getWidth()); $this->assertEquals($rasterFormatExpected, $rasterFormatActual, "Raster format did not match expected"); $this->assertEquals($columnFormatExpected, $columnFormatActual, "Column format did not match expected"); } }