Авторазмер изображения в соответствии с данными из JSON

Я хочу автоматически изменить размер изображения в соответствии с данными из 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: извините, двойной пост

1

Решение

Просто попробуйте это:

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

Извините, я использую свой собственный шрифт, просто замените его своим.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector