使用PHP创建PPM文件

时间:2015-10-04 21:57:45

标签: php variables dynamic pixel ppm

我希望能够使用PHP在文本中创建PPM文件,该文件可以显示在RGB LED矩阵显示器上。这意味着我需要逐行逐像素地构建图像。我设法使用一个字符作为输入。我希望能够使用多个特殊和非特殊字符来完成它。我有工作代码自动设置PPM的标题,尺寸等,所以上面的整个故事是无关紧要的。如果您想了解我为什么需要此信息,则仅供您参考。

$input = "ABC DE";

给出了字符集。对于字母'A',它看起来像这样(每行后6x10字体+ 1px空格,因此可以连续输入文本):

$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);

它会给出字母'A'。

对于字母'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 ...........

如何处理$ input文本以便我得到上述内容?我知道我需要计算字符总数,然后开始按字符逐行构建文本。我有其余的工作代码,只有上面的部分缺失。如果您需要更多信息,请与我们联系。

0 个答案:

没有答案