v2.5.2
Giriş yap

php ile resim uzerine yaziyi tam ortada yazdirmak

aykuttorbay7
586 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

Cevap yaz
Cevaplar (2)
percave
1228 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);
gokcin
1228 gün önce


$bbox = imagettfbbox(85, 0, $font, $txt);
$center1 = (imagesx($image) / 2) - (($bbox[2] - $bbox[0]) / 2);