Я хочу автоматически изменить размер изображения в соответствии с данными из JSON. Эти данные обновляются, и мне нужно получить изображение, которое показывает список вроде этого:
Этот список в соответствии с данными JSON
Пример:
NL: Anon1
EN: Anon3
ES: Anon9
Вот код, который у меня есть:
<?php
header("Content-type: image/png");
$link = 'http://riddlematic.com/staff.json';
$f = file_get_contents($link);
$json = json_decode($f);
foreach ($json->mods as $key => $val) {
$q = strtoupper($key) . ': ' . implode(', ', $val);
}
$font = "IMPACT.TTF";
$size = 30;
$bbox = imageftbbox($size, 0, $font, $q);$width = $bbox[2] - $bbox[6];
$height = $bbox[3] - $bbox[7];
$im = imagecreatetruecolor($width, $height);
$green = imagecolorallocate($im, 60, 240, 60);
imagefttext($im, $size, 0, -$bbox[6], -$bbox[7], $green, $font, $q);
imagepng($im);
imagedestroy($im);
?>
РЕДАКТИРОВАТЬ: В настоящее время данные JSON отключены, но это так:
{
"map": {},
"mod": {
"br": [
"Explanado"],
"de": [
"Sweetphoenix"]
}
}'
Надеюсь, кто-нибудь поможет мне
пожалуйста
PS: извините, двойной пост
Просто попробуйте это:
// header("Content-type: image/png");
$link = base_url('staff.json');
$f = file_get_contents($link);
$json = json_decode($f);
$font = "C:/xampp/htdocs/api/texb.ttf";
echo $font;
$size = 30;
foreach ($json->mods as $key => $val) {
$q = strtoupper($key) . ': ' . implode(', ', $val);
$bbox = imageftbbox($size, 0, $font, $q);$width = $bbox[2] - $bbox[6];
$height = $bbox[3] - $bbox[7];
$im = imagecreatetruecolor($width, $height);
$green = imagecolorallocate($im, 60, 240, 60);
imagefttext($im, $size, 0, -$bbox[6], -$bbox[7], $green, $font, $q);
imagepng($im, $key.'.png',9);
imagedestroy($im);
}
Я удаляю код заголовка заголовок («Content-type: image / png»); и поместите код вашего изображения в цикл foreach, после чего я сохраняю каждое сгенерированное изображение imagepng ($ im, $ key. ‘. png’, 9);
Извините, я использую свой собственный шрифт, просто замените его своим.
Других решений пока нет …