Transform içerisinde skew kullanarak yapabilirsin. Tayfun hocanın css derslerinde bir örneği var aşağıdaki videoda bulabilirsin:
https://youtu.be/YoCJpfQIO8k?t=1010
imagettfbbox yardımcı olabilir bu durum için.
imagettfbbox fonksiyonu ile yazılacak olan yazının uzunluğunu alabiliriz.
Detaylı bilgi: https://www.php.net/manual/tr/function.imagettfbbox.php
Kodun için aşağıdaki şekilde kullanılabilir:
header('Content-Type: image/jpg');
$img = "img/cert.jpg";
$image = ImageCreateFromjpeg($img);
$img_name = 'cert.jpg';
$black = imagecolorallocate($image, 0, 0, 0);
$text = 'jhon doe';
$font = 'fonts/Gilroy-Bold.otf';
$font_size = 16;
$text_rect = imagettfbbox($font_size, 0, $font, $text);
$text_width = $text_rect[4] - $text_rect[0];
$pos_x = (500 - $text_width) / 2;
imagettftext($image, 75, 0, $pos_x, 500, $black, $font, $text);
Imagejpeg($image,"img/cert/".$img_name);
ImageDestroy($image);
set_time_limit(0); komutunu kullanarak belli bir süre sonra durmasını engelleyebilirsin. Ayrıca bir linux sunucu üzerinde çalışıyorsan aşağıdaki komut ile arkaplanda açık kalmasını sağlayabilirsin:
sudo nohup php /yol/script.php >/dev/null 2>&1 &
Bu komut ile arkaplanda çalışmasını sağlarsın fakat her 2 durum içinde set_time_limit ile zaman sınırını kaldırman gerekiyor.