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 ' ';
} else {
echo '<span style="color:rgb(' . $r . ',' . $g . ',' . $b . ');">#</span>';
}
}
}
echo '</pre>';
举个例子,下面是一个非常容易识别的图像。
请注意,尽管如果尝试转换非常大的图像,这对于较小的图像大小也可行,但您会发现脚本花费了很长时间。这是因为它依次查看每个像素并将颜色转换为可用的颜色,因此,如果有很多像素,则需要很长时间才能查看每个像素。不仅如此,而且由于创建了所有span元素,因此生成的页面大小将显着增加。
这将转换为下一页上的文本。
ASCII格式的Google徽标
请注意,尽管如果尝试转换非常大的图像,这对于较小的图像大小也可行,但您会发现脚本花费了很长时间。这是因为它依次查看每个像素并将颜色转换为可用的颜色,因此,如果有很多像素,则需要很长时间才能查看每个像素。不仅如此,而且由于创建了所有span元素,因此生成的页面大小将显着增加。
以上是 PHP脚本将图像转换为ASCII文本 的全部内容, 来源链接: utcz.com/z/355132.html