convertXYToRGB() public static method

Converts XY (and brightness) values to RGB
public static convertXYToRGB ( float $x, float $y, integer $bri = 255 ) : array
$x float X value
$y float Y value
$bri integer Brightness value
return array red, green, blue key/value
コード例 #1
0
ファイル: ColorConversionTest.php プロジェクト: sqmk/phue
 /**
  * Test: convert XY and brightness to RGB
  *
  * @covers \Phue\Helper\ColorConversion::convertXYToRGB
  */
 public function testConvertXYToRGB()
 {
     // Conversion back from the test above
     // Alice Blue
     $rgb = ColorConversion::convertXYToRGB(0.3088, 0.3212, 233);
     $this->assertEquals($rgb['red'], 239);
     $this->assertEquals($rgb['green'], 247);
     $this->assertEquals($rgb['blue'], 255);
     // Firebrick
     $rgb = ColorConversion::convertXYToRGB(0.6622, 0.3024, 35);
     $this->assertEquals($rgb['red'], 178);
     $this->assertEquals($rgb['green'], 33);
     $this->assertEquals($rgb['blue'], 33);
     // Medium Sea Green
     $rgb = ColorConversion::convertXYToRGB(0.1979, 0.5004999999999999, 81);
     $this->assertEquals($rgb['red'], 61);
     $this->assertEquals($rgb['green'], 178);
     $this->assertEquals($rgb['blue'], 112);
 }
コード例 #2
0
ファイル: Group.php プロジェクト: sqmk/phue
 /**
  * Get calculated RGB
  *
  * @return array red, green, blue key/value
  */
 public function getRGB()
 {
     $xy = $this->getXY();
     $bri = $this->getBrightness();
     $rgb = ColorConversion::convertXYToRGB($xy['x'], $xy['y'], $bri);
     return $rgb;
 }
コード例 #3
0
ファイル: LightTest.php プロジェクト: sqmk/phue
 /**
  * Test: Get/Set RGB
  *
  * @covers \Phue\Light::getRGB
  * @covers \Phue\Light::setRGB
  */
 public function testGetSetRGB()
 {
     $this->stubMockClientSendSetLightStateCommand();
     // Make sure original rgb is retrievable
     $rgb = ColorConversion::convertXYToRGB($this->attributes->state->xy[0], $this->attributes->state->xy[1], $this->attributes->state->bri);
     $this->assertEquals(array('red' => $rgb['red'], 'green' => $rgb['green'], 'blue' => $rgb['blue']), $this->light->getRGB());
     // Ensure setRGB returns self
     $this->assertEquals($this->light, $this->light->setRGB(50, 50, 50));
     // Make sure light attributes are updated
     $this->assertEquals(array('red' => 50, 'green' => 50, 'blue' => 50), $this->light->getRGB());
 }