Dinamik GD resim genişliği metin

2 Cevap php

Ben başlıklar için özel yazı tiplerini kullanarak benim web baharat kadar çalışıyorum. Benim için, bunu yapmak için en uygun yolu PHP ve GD kullanıyor. Ben $ _GET değerine göre dinamik metin, ancak bazen resim hakkında her şeyi taşır, çok geniş çıktısı bir senaryo yazdım.

Nasıl metnin genişliğine göre onun genişliğini, ayarlamak için görüntü alabilirim? İşte şimdiye kadar yazdım kodu:

<?php
// Settings
$sText = $_GET['t']; // Text of heading
$sFont = "font/AvantGarde-Book.ttf"; // Default font for headings
$sMain = $_GET['c'] ? $_GET['c'] : 0xF2AB27; // Get a font or default it

// Create the image
header("content-type: image/png"); // Set the content-type
$hImage = imagecreatetruecolor(200, 24);
ImageFill($hImage, 0, 0, IMG_COLOR_TRANSPARENT);
imagesavealpha($hImage, true);
imagealphablending($hImage, false);
imagettftext($hImage, 20, 0, 0, 24, $sMain, $sFont, $sText); // Draw the text
imagepng($hImage); // Generate the image
imagedestroy($hImage); // Destroy it from the cache ?>

Teşekkürler!

2 Cevap

Tamam, ben bunu anladım! Bu sorun olabilir herkes için, eklemek gerekir:

// Calcuate the width of the image
$arSize = imagettfbbox(24, 0, $sFont, $sText);
$iWidth = abs($arSize[2] - $arSize[0]);
$iHeight = abs($arSize[7] - $arSize[1]);

Imagecreatetruecolor önce ()

Fonksiyonu imagettfbbox metin aldı font dayalı ne olacağını boyutunu hesaplamak olacaktır. Imagecreatetruecolor için çağrıda sonuçları kullanın.