

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.
/**
* 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ı:

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.
Bunları da beğenebilirsiniz

Kritik Sistemlerde Teknik Borcu Azaltmak: Yapay Zeka Ajanları ile Mimari Refactoring
Bu blog yazısı, kritik sistemlerde biriken teknik borcun yarattığı zorlukları ve bu sorunla mücadelede yapay zeka ajanlarının repo düzeyinde mimari refactoring süreçlerine nasıl entegre edilebileceğini derinlemesine inceliyor. Teknik borcu azaltmak, sistem performansını artırmak ve geliştirme süreçlerini hızlandırmak için yenilikçi stratejiler sunulmaktadır.

PHP PDO ile Veritabanı İşlemleri
Merhaba, veritabanı işlemlerini kolayca yapmanız için gereken her şeyi sunan PHP PDO hakkında bildiklerimi bu makalemizde sizlerle paylaşıyor olacağım. PHP PDO sayesinde veritabanınızı kontrol edebilir,…

Üretim Hattında Otonom Eylemleri Senkronize Etmek İçin Dağıtık Konsensüs: Endüstriyel AI Kararları
Endüstriyel yapay zeka sistemlerinde otonom eylemleri güvenilir bir şekilde senkronize etmek için dağıtık konsensüs mekanizmalarının önemini ve uygulama yöntemlerini keşfedin. Üretim hattındaki verimliliği ve güvenliği artırmak için bu teknolojilerin nasıl kullanılabileceğini öğrenin.