Я хочу иметь возможность создавать PPM-файл из текста с использованием PHP, который может отображаться на матричном светодиодном дисплее RGB. Это означает, что мне нужно строить изображение попиксельно, построчно. Мне удалось сделать это, используя один символ в качестве ввода. Я хочу сделать это с помощью нескольких специальных и не специальных символов. У меня есть рабочий код для автоматической установки заголовка, размеров и т. Д. PPM, поэтому вся описанная выше история не имеет значения. Это только для вашей информации, если вы хотите понять, зачем мне это нужно.
$input = "ABC DE";
Наборы символов даны. Для буквы «А» это выглядит так (шрифт 6×10 + 1 пиксель после каждой строки, поэтому текст можно подавать непрерывно):
$a0 = ($black.' '.$black.' '.$color.' '.$color.' '.$black.' '.$black.' '.$space);
$a1 = ($black.' '.$color.' '.$black.' '.$black.' '.$color.' '.$black.' '.$space);
$a2 = ($color.' '.$black.' '.$black.' '.$black.' '.$black.' '.$color.' '.$space);
$a3 = ($color.' '.$black.' '.$black.' '.$black.' '.$black.' '.$color.' '.$space);
$a4 = ($color.' '.$black.' '.$black.' '.$black.' '.$black.' '.$color.' '.$space);
$a5 = ($color.' '.$color.' '.$color.' '.$color.' '.$color.' '.$color.' '.$space);
$a6 = ($color.' '.$black.' '.$black.' '.$black.' '.$black.' '.$color.' '.$space);
$a7 = ($color.' '.$black.' '.$black.' '.$black.' '.$black.' '.$color.' '.$space);
$a8 = ($color.' '.$black.' '.$black.' '.$black.' '.$black.' '.$color.' '.$space);
$a9 = ($color.' '.$black.' '.$black.' '.$black.' '.$black.' '.$color.' '.$space);
Если я повторю вышеизложенное по порядку,
$output = ($a0.' '.$a1.' '.$a2.' '.$a3.' '.$a4.' '.$a5.' '.$a6.' '.$a7.' '.$a8.' '.$a9);
это даст букву «А».
Для буквы «B» это выглядит так (и так далее):
$b0 = ($color.' '.$color.' '.$color.' '.$color.' '.$black.' '.$black.' '.$space);
$b1 = ($color.' '.$black.' '.$black.' '.$black.' '.$color.' '.$black.' '.$space);
$b2 = ($color.' '.$black.' '.$black.' '.$black.' '.$black.' '.$color.' '.$space);
$b3 = ($color.' '.$black.' '.$black.' '.$black.' '.$color.' '.$black.' '.$space);
$b4 = ($color.' '.$color.' '.$color.' '.$color.' '.$black.' '.$black.' '.$space);
$b5 = ($color.' '.$black.' '.$black.' '.$black.' '.$color.' '.$black.' '.$space);
$b6 = ($color.' '.$black.' '.$black.' '.$black.' '.$black.' '.$color.' '.$space);
$b7 = ($color.' '.$black.' '.$black.' '.$black.' '.$black.' '.$color.' '.$space);
$b8 = ($color.' '.$black.' '.$black.' '.$black.' '.$color.' '.$black.' '.$space);
$b9 = ($color.' '.$color.' '.$color.' '.$color.' '.$black.' '.$black.' '.$space);
Если я хотел напечатать ‘AB’, мне нужно сделать это построчно:
$output = ($a0.' '.$b0.' '.$a1.' '.$b1.' '.$a2.' '.$b2.' '.$a3.' '.$b3.' '.$a4.' '.$b4.' '.$a5.' '.$b5.' '.$a6.' '.$b6.' '.$a7.' '.$b7.' '.$a8.' '.$b8.' '.$a9.' '.$b9);
«ABC DE» будет:
$output = ($a0.' '.$b0.' '.$c0.' '.$space0.' '.$d0.' '.$e0.' '.$a1.' '.$b1.' '.$c1.' '.$space1.' '.$d1.' '.$e1 ...........
Как мне обработать текст ввода $, чтобы я получил выше? Я знаю, что мне нужно посчитать общее количество символов, а затем начать строить текст посимвольно / построчно. У меня есть рабочий код для остального, только часть выше отсутствует. Пожалуйста, дайте мне знать, если вам требуется дополнительная информация.
Задача ещё не решена.
Других решений пока нет …