PHP ile Kullanıcı Avatarı Oluşturma Fonksiyonu
Blog'a Dön

PHP ile Kullanıcı Avatarı Oluşturma Fonksiyonu

Buğra Şıkel

PHP ile kullanıcılar özel avatar oluşturma

PHP ile kullanıcılarımızın olduğu projeler üretiyoruz, bu projelere kullanıcılarımız kayıt olduğunda varsayılan avatarlar kullanmak yerine onlara biraz daha özen verdiğimizi gösterecek özel avatarlar üretmek isteyebiliriz. Bu yazımızda php ile kullanıcılarımızın adına özel avatar oluşturacak bir fonksiyon yazacağız.

Kullanıcı avatarı, bir kullanıcının profil sayfasında gösterilen bir resimdir. Bu resim, kullanıcının kendini tanımlayan bir simgedir ve diğer kullanıcılar tarafından görülebilir. PHP dilini kullanarak, kullanıcı avatarı oluşturma fonksiyonu yazabilir ve bu fonksiyonu kullanarak çeşitli resimler oluşturabiliriz. Bu fonksiyonu oluşturmak için tek ihtiyacımız olan kullanıcımızın ismi.

İlk olarak bu fonksiyonumuzun nasıl çalıştığını özetlemek istiyorum.

Öncelikle, girilen harfler üst karaktere dönüştürülür ve sayısal sembollerine dönüştürülür. Daha sonra, belirtilen genişlik ve yükseklik değerlerine göre yeni bir resim dosyası oluşturulur. Arka plan rengi belirlenir ve resim dosyasının tüm alanına doldurulur. Yazı rengi belirlenir ve yazının resim dosyasına yerleştirilmesi için gerekli koordinatlar hesaplanır. Son olarak, yazı resim dosyasına yerleştirilir ve resim dosyası oluşturulur ve kaydedilir. Son olarak, resim dosyası bellekten silinir.

Fonksiyonumuz ise şu şekilde:
/**
 * Girilen harflerden bir resim oluşturur.
 *
 * @param string $letters  Oluşturulacak resmin içine yazılacak harfler
 * @param int $width       Oluşturulacak resmin genişliği (varsayılan: 300px)
 * @param int $height      Oluşturulacak resmin yüksekliği (varsayılan: 300px)
 * @param string $font     Oluşturulacak resmin yazı fontu (varsayılan: '_upload/inter.ttf')
 * @param int $fontsize    Oluşturulacak resmin yazı fontunun boyutu belirlenir (varsayılan: 100px)
 * @return void            Resim dosyası oluşturulur ve kaydedilir
 */
function pImgGenerator(string $letters, int $width = 300, int $height = 300,string $font = '_upload/inter.ttf', int $fontsize = 100)
{
    // Girilen harfler üst karaktere dönüştürülür ve sayısal sembollerine dönüştürülür
    $text = mb_strtoupper($letters);
    $text = mb_encode_numericentity($text, [0x80, 0xffff, 0, 0xffff, 0x0130, 0, 0, 0], 'UTF-8');

    // Resim dosyası oluşturulur
    $image = imagecreatetruecolor($width, $height);

    // Arka plan rengi belirlenir
    $color = imagecolorallocate($image, 118, 109, 244);

    // Arka plan rengi resim dosyasının tüm alanına doldurulur
    imagefill($image, 0, 0, $color);

    // Yazı rengi belirlenir
    $textcolor = imagecolorallocate($image, 241, 240, 254);

    // Yazının resim dosyasına yerleştirilmesi için gerekli koordinatlar hesaplanır
    $textbox = imagettfbbox($fontsize, 0, $font, $text);
    $x = ceil(($width - $textbox[4]) / 2);
    $y = ceil(($height - $textbox[5]) / 2);

    // Yazı resim dosyasına yerleştirilir
    imagettftext($image, $fontsize, 0, $x, $y, $textcolor, $font, $text);

    // Resim dosyası oluşturulur ve kaydedilir
    header('Content-Type: image/webp');
    $name = 'generated_image_'.$letters;
    $save_path = '_upload/profile/'.$name.'.webp';
    imagepng($image, $save_path);

    // Resim dosyası bellekten silinir
    imagedestroy($image);
}

Çıktı olarak, belirttiğimiz klasöre, belirttiğimiz özelliklerde bir resim oluşturacak. Örnek kullanımını ise şu şekilde göstermek istiyorum.

pImgGenerator('üa'); // 300px x 300px boyutunda, 'inter.ttf' fontu kullanılarak 'AA' harflerinden oluşan bir resim dosyası oluşturulur ve kaydedilir.

pImgGenerator('ÜÜ', 500, 500, '_upload/arial.ttf', 150); // 500px x 500px boyutunda, 'arial.ttf' fontu kullanılarak 'ÜÜ' harflerinden oluşan bir resim dosyası oluşturulur ve kaydedilir.

Örnek Çıktı:

Örnek çıktı

Bu yazıda, PHP dilini kullanarak kullanıcı avatarı oluşturma fonksiyonunu anlattım. Öncelikle, girilen harfler üst karaktere dönüştürülür ve sayısal sembollerine dönüştürülür. Daha sonra, belirtilen genişlik ve yükseklik değerlerine göre yeni bir resim dosyası oluşturulur. Arka plan rengi belirlenir ve resim dosyasının tüm alanına doldurulur. Yazı rengi belirlenir ve yazının resim dosyasına yerleştirilmesi için gerekli koordinatlar hesaplanır. Son olarak, yazı resim dosyasına yerleştirilir ve resim dosyası oluşturulur ve kaydedilir. Son olarak, resim dosyası bellekten silinir. Bu fonksiyon, özel parametreler de belirtilerek de kullanılabilir. Bu sayede, resim dosyalarının genişlik, yükseklik, font ve font boyutu gibi özelliklerine göre özelleştirilebilir.

Bu ve benzeri önemli ipuçlarını öğrenmek için diğer yazılarıma da göz atabilirsiniz.

Web sitesine mi ihtiyacınız var ?

Bunları da beğenebilirsiniz

Yüksek Hacimli Sensör Verileri İçin AI Destekli Asenkron Kuyruk Yönetimi Stratejileri: Performans ve Verimlilik Optimizasyonu
11 Şubat 2026

Yüksek Hacimli Sensör Verileri İçin AI Destekli Asenkron Kuyruk Yönetimi Stratejileri: Performans ve Verimlilik Optimizasyonu

Bu blog yazısı, IoT ve endüstriyel otomasyon gibi alanlarda yüksek hacimli sensör verilerini işlemek için yapay zeka destekli asenkron kuyruk yönetimi stratejilerini inceliyor. Gecikmeyi azaltma, ölçeklenebilirliği artırma ve kaynak kullanımını optimize etme yöntemlerini keşfedin.

Devamını Oku
Endüstriyel AI İçin PLC Veri Akışlarını Akıcı Hale Getirmek: Modbus/OPC UA ile Düşük Gecikmeli Entegrasyonlar
14 Şubat 2026

Endüstriyel AI İçin PLC Veri Akışlarını Akıcı Hale Getirmek: Modbus/OPC UA ile Düşük Gecikmeli Entegrasyonlar

Endüstriyel AI, PLC verilerinin doğru ve zamanında akışına bağlıdır. Modbus ve OPC UA entegrasyonuyla düşük gecikmeli, güvenli ve semantik veri hatları oluşturarak üretim operasyonlarını optimize etmenin yollarını keşfedin.

Devamını Oku
PyTorch 2.2 FSDP ve QLoRA: Dağıtık Fine-Tuning OOM Hataları ve İzolasyon Stratejileri
20 Mayıs 2026

PyTorch 2.2 FSDP ve QLoRA: Dağıtık Fine-Tuning OOM Hataları ve İzolasyon Stratejileri

PyTorch 2.2’de FSDP ve QLoRA entegrasyonu ile 70B+ parametreli LLM’lerin eğitiminde karşılaşılan OOM hatalarının kök neden analizi ve production düzeyinde çözüm stratejileri.

Devamını Oku
AI Asistan