<?php namespace App\Util\Blurhash; final class DC { public static function encode(array $value): int { $rounded_r = Color::tosRGB($value[0]); $rounded_g = Color::tosRGB($value[1]); $rounded_b = Color::tosRGB($value[2]); return ($rounded_r << 16) + ($rounded_g << 8) + $rounded_b; } public static function decode(int $value): array { $r = $value >> 16; $g = ($value >> 8) & 255; $b = $value & 255; return [ Color::toLinear($r), Color::toLinear($g), Color::toLinear($b) ]; } }