getModuleAt(8, $col)->isDark() ? '1' : '0'; } echo "Extracted format bits: {$formatBits}\n\n"; // Try to match with known formats for Level M $formatTable = [ 0 => '101010000010010', 1 => '101000100100101', 2 => '101111001111100', 3 => '101101101001011', 4 => '100010111111001', 5 => '100000011001110', 6 => '100111110010111', 7 => '100101010100000', ]; foreach ($formatTable as $maskNum => $expectedBits) { if ($formatBits === $expectedBits) { echo "✅ MATCH! Mask Pattern: {$maskNum}\n"; echo "Format bits: {$expectedBits}\n"; return; } } echo "❌ No exact match found!\n\n"; echo "Closest matches:\n"; foreach ($formatTable as $maskNum => $expectedBits) { $diff = 0; for ($i = 0; $i < 15; $i++) { if ($formatBits[$i] !== $expectedBits[$i]) { $diff++; } } echo "Mask {$maskNum}: {$diff} bits different\n"; }