PHP脚本将图像转换为ASCII文本

使用以下代码片段将任何jpeg图像转换为ASCII格式的等效图像。它的工作原理是使用PHP GD2库函数加载图像ImageCreateFromJpeg(),然后确定图像的高度和宽度。然后,它使用这些值遍历图像中的每个像素并找出该像素的颜色。它使用该值创建一个“ span”元素,该元素使用#的文本颜色更改文本的颜色。

此功能的另一个节省时间(和空间)的功能是,它可以检测出任何白色的像素,并仅显示一个 即可。字符代替。

$img = ImageCreateFromJpeg('logo.jpg');

 

// 获取图像的高度和宽度。

$width = imagesx($img);

$height = imagesy($img);

 

echo '<pre style="font-size:1px;">';

 

for ($h=0; $h < $height; $h++) {

 for ($w=0; $w <= $width; $w++) {

  if ($w == $width) {

   echo "\n";

   continue;

  }

  // 在像素位置获取颜色。

  $rgb = ImageColorAt($img, $w, $h);

 

  // 将颜色转换为可用格式。

  $r = ($rgb >> 16) & 0xFF;

  $g = ($rgb >> 8 ) & 0xFF;

  $b = $rgb & 0xFF;

 

  // 检查白色/灰白色。

  if ($r > 200 && $g > 200 && $b > 200) {

   echo '&nbsp;';

  } else {

   echo '<span style="color:rgb(' . $r . ',' . $g . ',' . $b . ');">#</span>';

  }

 }

}

echo '</pre>';

举个例子,下面是一个非常容易识别的图像。

请注意,尽管如果尝试转换非常大的图像,这对于较小的图像大小也可行,但您会发现脚本花费了很长时间。这是因为它依次查看每个像素并将颜色转换为可用的颜色,因此,如果有很多像素,则需要很长时间才能查看每个像素。不仅如此,而且由于创建了所有span元素,因此生成的页面大小将显着增加。

这将转换为下一页上的文本。

ASCII格式的Google徽标

请注意,尽管如果尝试转换非常大的图像,这对于较小的图像大小也可行,但您会发现脚本花费了很长时间。这是因为它依次查看每个像素并将颜色转换为可用的颜色,因此,如果有很多像素,则需要很长时间才能查看每个像素。不仅如此,而且由于创建了所有span元素,因此生成的页面大小将显着增加。

以上是 PHP脚本将图像转换为ASCII文本 的全部内容, 来源链接: utcz.com/z/355132.html

回到顶部