v2.5.2
Giriş yap

php ile resim uzerine yaziyi tam ortada yazdirmak

aykuttorbay7
462 defa görüntülendi


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';

imagettftext($image, 75, 0, 500, 500, $black, $font, $text);

Imagejpeg($image,"img/cert/".$img_name);
ImageDestroy($image);

arkadaslar merhaba.
resim uzerine boyle yazi yazdiriyorum.
soldan 500px ustten 500px seklinde ama benim istedigim ustten 500px ama soldan
yani x koordinatinda tam ortaya yazdirilmasi yardimci olurmusunuz?
tesekkur ederim

percave
990 gün önce

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