Oluşturulan PNG PHP GD Trim Şeffaf Piksel

0 Cevap php

Şu anda bir web sitesi üzerinde çalışıyorum ve son zamanlarda otomatik olarak internet sitesinde vb navigasyon, başlıklar, ile kullanım için metinden oluştuğu şeffaf görüntüler oluşturmak için PHP ile GD kullanarak edilmiştir. Bana Photoshop çok zaman kazandırır artı gerektiğinde ben anında düğmeleri metni değiştirebilirsiniz.

Peki ben burada bir çıkmaza girdi. Ben metin boyutu ne benim görüntü olarak yaratılan "metin", boyutlandırma yöntemi bulundu. Ama karşılıklı sorun ben GD boyutu olarak ne beklediğini daha sonra farklı bir TTF yazı tipi kullanıyorum olmasıdır. Temelde, son harfi Çıktılanan görüntü kapalı kıyılmış olacaktır. Metne sıkı bir kenar tutarken, bu düzeltmek veya orijinal TextBox çok daha büyük bir boyuta getirmek ve daha sonra görüntünün kapalı saydam pikselleri "trim" için bir yol olup olmadığını Yani ben merak ediyorum.

Bu ben şimdi çalışıyorum kodu ...

<?
$text = strip_tags($_GET['btn']);
if(file_exists('nav_'.$text.'.png')) {
    header("Content-type: image/png");

    $image = imagecreatefrompng('nav_'.$text.'.png');
    imagesavealpha($image, true);
    imagealphablending($image, false);
    imagepng($image);
    imagedestroy($image);
} else {
    header("Content-type: image/png");

    $fontSize = 10;
    $angle = 0;
    $font = "RonniaBold.ttf";

    $size = imagettfbbox($fontSize, $angle, $font, $text);
    $image = imagecreatetruecolor(abs($size[2]) + abs($size[0]) + 5, abs($size[7]) + abs($size[1]) + 5);
    imagesavealpha($image, true);
    imagealphablending($image, false);

    $transparentColor = imagecolorallocatealpha($image, 200, 200, 200, 127);
    imagefill($image, 0, 0, $transparentColor);

    $textColor = imagecolorallocate($image, 125, 184, 222);
    imagettftext($image, $fontSize, 0, 1, abs($size[5])+1, $textColor, $font, str_replace('_',' ',strtoupper($text)));
    imagepng($image, 'nav_'.$text.'.png', 0);
    imagedestroy($image);
}
?>

Umarım siz bu bazı fikir var, ben gerçekten kullanabilirsiniz!

0 Cevap