GrayscaleRasterImageTest.php 2.0KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. <?php
  2. /*
  3. * Many of these tests use an example image like this-
  4. *╭────╮
  5. *│░░▒▒│ ░░ = 255 ▓▓ = 80
  6. *│▓▓██│ ▒▒ = 160 ██ = 0
  7. *╰────╯
  8. */
  9. use PHPUnit\Framework\TestCase;
  10. use Mike42\GfxPhp\GrayscaleRasterImage;
  11. use Mike42\GfxPhp\RgbRasterImage;
  12. class GrayscaleRasterImageTest extends TestCase {
  13. protected function createGrayscaleTestImage() {
  14. $image = GrayscaleRasterImage::create(2, 2);
  15. $image -> setPixel(0, 0, 255);
  16. $image -> setPixel(1, 0, 160);
  17. $image -> setPixel(0, 1, 80);
  18. $image -> setPixel(1, 1, 0);
  19. return $image;
  20. }
  21. public function testCreate()
  22. {
  23. $img = $this -> createGrayscaleTestImage();
  24. $this -> assertEquals(2, $img -> getWidth());
  25. $this -> assertEquals(2, $img -> getHeight());
  26. $this -> assertEquals(255, $img -> getMaxVal());
  27. $this -> assertEquals("▄▄\n", $img -> toBlackAndWhite() -> toString());
  28. }
  29. public function testToRgb()
  30. {
  31. $white = RgbRasterImage::rgbToInt(255, 255, 255);
  32. $lightGray = RgbRasterImage::rgbToInt(160, 160, 160);
  33. $darkGray = RgbRasterImage::rgbToInt(80, 80, 80);
  34. $black = RgbRasterImage::rgbToInt(0, 0, 0);
  35. $img = $this -> createGrayscaleTestImage() -> toRgb();
  36. $this -> assertEquals($white, $img -> getPixel(0, 0));
  37. $this -> assertEquals($lightGray, $img -> getPixel(1, 0));
  38. $this -> assertEquals($darkGray, $img -> getPixel(0, 1));
  39. $this -> assertEquals($black, $img -> getPixel(1, 1));
  40. }
  41. public function testToIndexed()
  42. {
  43. // Same raster data is used, with grayscale 'palette'
  44. $img = $this -> createGrayscaleTestImage() -> toIndexed();
  45. $this -> assertEquals(255, $img -> getPixel(0, 0));
  46. $this -> assertEquals(160, $img -> getPixel(1, 0));
  47. $this -> assertEquals(80, $img -> getPixel(0, 1));
  48. $this -> assertEquals(0, $img -> getPixel(1, 1));
  49. }
  50. }