gpt4 book ai didi

php - 在选定的像素上创建词云

转载 作者:可可西里 更新时间:2023-11-01 12:21:14 25 4
gpt4 key购买 nike

我正在尝试创建一个人脸的词云。类似于 this

为了实现这一点,我得到了一个人的黑白图像,并将最暗的像素变为黑色,将最亮的像素变为白色。这是我的结果

enter image description here

现在我已经有了要放置词云的区域。现在我不知道如何将单词放在脸上以保持单词之间的边距/角度。

这是我到目前为止所做的代码

<?php
set_time_limit(0);
$src = 'person.jpeg';

$im = imagecreatefromjpeg($src);
$size = getimagesize($src);
$width = $size[0];
$height = $size[1];

$image_p = imagecreatetruecolor($width, $height);
imagecopyresampled($image_p, $im, 0, 0, 0, 0, $width, $height, $width, $height);

$white_color = imagecolorallocate($im, 255, 255, 255);
$black_color = imagecolorallocate($im, 0, 0, 0);

$font = __DIR__ . "/testfont.ttf";
$font_size = 16;
$text = "Test text";

$skip = true;
for ($x = 0; $x < $width; $x++) {
for ($y = 0; $y < $height; $y++) {
$rgb = imagecolorat($im, $x, $y);
$r = ($rgb >> 16) & 0xFF;
$g = ($rgb >> 8) & 0xFF;
$b = $rgb & 0xFF;


if ($r >= 126) {
imagesetpixel($image_p, $x, $y, $white_color);
} else {
imagesetpixel($image_p, $x, $y, $black_color);

if ($x % 20 == 1) {
imagestring($image_p, 5, $x, $y, 'T', $black_color);
//imagettftext($image_p, 16, 0, $x, $y, $black_color, $font, $text);
}
}
//var_dump($r, $g, $b);
//echo "<br/>";
}
}
imagestring($image_p, 5, 0, 0, 'Hello world!', $black_color);

header('Content-Type: image/jpeg');
imagejpeg($image_p, null, 100);

我尝试使用 imagestringimagettftext

if ($x % 20 == 1) {
imagestring($image_p, 5, $x, $y, 'T', $black_color);
//imagettftext($image_p, 16, 0, $x, $y, $black_color, $font, $text);
}

并得到奇怪的输出。使用 imagettftext 渲染时间太长,使用 imagestring 这就是我得到的

enter image description here

最佳答案

使用其中一个函数而不是同时使用它们:imagesetpixel 或 imagestring如果您有黑白照片,请忘记 $black_color 和 $white_color 或将它们添加到此代码以自定义更多。并在最后添加您的自定义 header 。

list($w, $h, $type) = getimagesize('person.jpeg');
$resource = imagecreatefromstring(file_get_contents('person.jpeg'));
$img = imagecreatetruecolor($w, $h);
for($y=0; $y<$h; $y+=20)
for($x=0; $x<$w; $x+=20)
imagestring($img, 5, $x, $y, 'Hello world!', imagecolorat($resource, $x, $y));

关于php - 在选定的像素上创建词云,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53864086/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com