PHP İle Resim Üzerine Yazı Yazma Scripti

Su üzerine yazı yazılmaz…” fekat PHP sağolsun pek bi hamarat pek bi işlevsel olduğundan bize en azından resim üzerine yazı yazma imkanı sağlıyor. Bu özellik nerelerde kullanılır, ne işe yarar derseniz en çok oyun oynamak ardından istatistik raporlarını bastırmak veya değişken reklam görselleri hazırlamak için kullanılıyor. Bir çoğunuzun yabancı sitelerde rastladığına eminim, altında “Hi! I’m from ISTANBUL…” yazan ve arkadaş aradığını söyleyen güzel hanım avatarlarına. Bizler pek tabi bu tip yanıltıcı kullanımları tasvip etmiyoruz (da kimin umrunda herkesin gözünü para hırsı bürümüş, eskiden istemsiz açılan popuplar baş belasıyken şimdi paso kullanıcıyı yanıltmaya yönelik yöntemler var, kapatma tuşuna bastığınızda sizi reklamveren siteye yönlendiren öğeler gibi).

Sözü fazla uzatmadan gelelim scriptimize. Ben bu olayı pek bi seviyorum, sizlerinde işini göreceğini umuyorum.
Scripti son derece basit ve anlaşılır tuttum, daha önce denediniz veya indirdiniz mi bilmiyorum fakat bu işi nedense hep en zor yoldan halletmeye çalışıyorlar, oysa olay sanıldığından basit.

Kodlarımız aşağıdaki gibi:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?php
// PHP Resim Üzerine Yazı Yazma
// Herhangi bir resim üzerine yazı yazabilirsiniz.
// Caner ÖNCEL - http://www.egonomik.com

// Kullanım:
// Yazılmak istenen metni $_GET ile çağırıyoruz
// Örnek: resimyaz.php?text=Merhaba Dünya

$resim = "bg_resim.png"; // Üzerine yazılacak resmi seçiyoruz
$font = "fonts/segoepr.ttf"; // Font dosyası ve yolunu tanımlıyoruz
$golge = "true"; // Resme gölge eklemek istiyosanız "true" istemiyorsanız boş

$text = $_GET['text'];
if(empty($text)) {
$metin = "Metin yazin!"; }
else {
$metin = "$text"; }

header('Content-type: image/png');
$resim_yaz = imagecreatefrompng("$resim");

// Yazı ve gölgenin renk hex kodlarını belirliyoruz
$gri = imagecolorallocate($resim_yaz, 170, 170, 170);
$siyah = imagecolorallocate($resim_yaz, 0, 0, 0);

if ($golge == "true") {
imagettftext($resim_yaz, 16, 15, 59, 222, $gri, $font, $metin); }
imagettftext($resim_yaz, 16, 15, 58, 221, $siyah, $font, $metin);

imagepng($resim_yaz);
imagedestroy($resim_yaz);

?>

Dilerseniz scripte bir form ekleyerek yazrıdma işlemi gerçekleştirebilirsiniz

1
2
3
4
<form action="resimyaz.php" enctype="application/x-www-form-urlencoded" method="get">
<input name="text" size="15" type="text" style="border: 1px solid #666666" onclick="this.value=''"/>
<input type="submit" value="Resim yaz" />
</form>

Scripti çalıştırmak için yazdırmak istediğimiz metni “resimyaz.php?text=Yazi” şeklinde bir çağırma komutu gönderiyoruz. Ben burda Seogeo Print fontunu kullandım, siz isterseniz Türkçe karakterleri adam gibi gösteren farklı bir font kullanabilirsiniz.

Scriptin çalışan demosu:


İçerisinde hanım kızımızın resminin de bulunduğu script bileşenlerini buradan indirebilirsiniz :)

İlginizi Çekebilecek Diğer İçerikler

54 Yorum

  1. AHMET dedi ki:

    Merhaba eline koluna sağlık ben bu kodu aldım farklı jpg ve font kullandım ama bir türlü yapamadım.
    lafı uzatmayacağım siz acaba *** sitesi tarzında bir scipriti bana yazarmısınız, fiyatı ne olur? Teşekkürler.

  2. hakan dedi ki:

    Selam bu çalışmayı çok beğendim elinize sağlık.
    Bu çalışmayı gif animasyonu olan bir resime yazdırabilirmiyiz 2 frameli mesela.
     
    http://img198.imageshack.us/img198/1829/testfy.gif  buradaki resim gibi yapabilirmiyiz ?

  3. Caner Öncel dedi ki:

    Pek emin değilim ama bu işi bazı classlar yardımıyla yapabilirsiniz gibi, burdaki gibi kodlarla olacak iş değil ama :)

  4. Selim Emre dedi ki:

    Caner’cim sana bir soru :)
    Sitedeki resimlerin üzerine otomatik bir yazı eklenmesini istiyorum varmı bildigin boyle bir script…?

  5. Caner Öncel dedi ki:

    Selim’cim o tür bir sistem olup olmadığını bilemiyorum açıkcası araştırmak lazım, eve döndüğüm zaman bir bakayım :)

  6. Selim Emre dedi ki:

    Sagol ya gerek yok buldum ama şimdi bütün sitenin düzenini bozamam zaten table’yle çalışıyor ie’de farklı mozilla’da farklı opera’yı hiç sorma :)

  7. gevv dedi ki:

    Teşekkürler ufak bir sorum var :)
     
    Yazı yazdırmayı bir upload scriptine entegre edebilirmiyiz ?  yani  resimlere yazı yazarak yükleme yapılabilirmi
     
    resim gönderimi için kullanacağım script: http://shorttext.com/cl5i4kxex

  8. Caner Öncel dedi ki:

    @gevv Tabiki yapılabilir ve hatta bunu geçen seferki detaylı bilgilendirmen hatrına senin için yapacam, ama önce taşınmamız gereken bir server var biraz müsade istiyorum :)

  9. gevv dedi ki:

    Kolay gelsin :)  teşekkürler

  10. gevv dedi ki:

    Caner hocam bir gelişme varmı :D  ben bittim yerli yabancı bir sürü site gezdim %89 alıntı kaldık ortada :)

  11. Caner Öncel dedi ki:

    @gevv scripte baktım biraz mıncıklama fırsatı buldum :)

    http://www.cesurbolge.com/test/phUploader.php

     

    Bugün bir fırsatını bulup hallederiz ;)

  12. gevv dedi ki:

    Teşekkürler caner bende biraz ilerleme kaydettim :)  ama  sorunsuz olurmu olmaz tabi :)
     
    ilk olarak yüklenen resime yazı yazılmıyor bir serim daha yüklenirse diğer resime yazı yazılıyor yani iki yükle 1 yazılsın :)
     
    ikinci sorun sadece jpg  resimlere yazı yazılıyor
     
    diğerleri ise yazıyı sağ alt köşeye almak ve yazının arka planını transparan yapmak şuan yazı siyah bant üzerinde resime ekleniyor :)
     
    yazı yazdırmak için kodları phupload.php dosyasına ekledim
     
    kodlar: http://shorttext.com/b0p5lgdlx8

  13. Caner Öncel dedi ki:

    @gevv ama şimdi olmadı ki e hani sen o diğer scriptle tümleşik istiyordun? Bu kodlar nere o diğer verdiklerin nere :) Diğerinde çoklu dosya yükleniyor (zip, png vs.) bu kodlar ise sadece resim için, sen söylesene “bana sadece resim yükleyen ve o esnada üzerine watermark ekleyen script lazım” diye ben de kasıyorum kodları ayıklayacam şöyle yapacam böyle yapacam diye :)

    Şimdi ben sana bu işi gören bir script hazırlayayım ve hatta siteye de ekleyeyim madem ;)

     

  14. gevv dedi ki:

    :) teşekkürler caner tümleşik ayrı fark etmezdi bahsettiğim olayı phupload içine ekleyerek çalıştırdım :) benim bilgim olmadığı için en uygun script phuploader oldu çünkü  detaylı ayarları var uzantı boyut kısıtlama şifreleme vb.  zaten resimde yüklüyor dedim :)  bu scripte ekleme ile çözmek istedim
     
    phuploads.php son hali :)
    http://shorttext.com/0cmj8hyyhn

  15. Caner Öncel dedi ki:

    Hehe ellerine sağlık :) Dur ben şimdi sana franteştayn bir script hazırlıyorum kendim de kullanacam :)

  16. gevv dedi ki:

    Teşekkürler hocam merakla bekliyorum frantestaynupload.php :D

  17. orhan dedi ki:

    Arkadaşlar bunun türkçe sorununu nasıl çözdünüz. Her yolu denedim nerdeyse ama yinde de Türkçe bazı karakterlerde sorun çıkarıyor

  18. Caner Öncel dedi ki:

    @orhan Türkçe karakterleri destekleyen bir font dosyası kullanırsan sorunun çözülür sanırım.

  19. orhan dedi ki:

    türkçe fontlarda da  ” ı , ş , ğ  ” harflerinde sorun yaşadım. Destekleyen bildiğiniz bir font  varmı … tşk.

    • Caner Öncel dedi ki:

      Corbelz fontunu kullanabilirsin, son dönem watermark scriptlerinde bunu kullanıyorum ve Türkçe karakterleri destekliyor.

      http://www.egonomik.com/fonts/corbelz.ttf

  20. informatique dedi ki:

    merhaba acaba bunu nasıl çoklayabilirim birden fazla yazı girmek istiyorum resime ama beceremedim..

  21. Caner Öncel dedi ki:

    Önce kaç tane yazı girmek istiyorsanız formda o sayıda text inputu oluşturun, isimleri text2, text3 olsun diyelim, ardından scriptin içinden değişkenleri tanımlayın:

     

    $metin2 = $_GET[‘text2’];
    $metin3 = $_GET[‘text3’];

     

    gibi, daha sonra imagettftext($resim_yaz, 16, 15, 58, 221, $siyah, $font, $metin); satırını girmek istediğiniz metin sayısı kadar kopyalayıp çoğaltın ve $metin yazan yerlere yeni tanımladığınız $metin2, $metin3 değişkenlerini girin. 58, 221 gibi rakamları değiştirerekte metnin resim üzerindeki koordinatlarını ayarlayın.

  22. informatique dedi ki:

    olmadı sanırım..
    adres barda nasıl gözükmesi gerekiyor?
    resimyaz.php?text=yazı?text1=yazı 1
    gibi mi?

  23. informatique dedi ki:

    oldu çok saolun

  24. Caner Öncel dedi ki:

    Aslında sizin için detaylı bir cevap hazırlamıştım ama sitede oluşan teknik bir hata yüzünden gümbürtüye gitti, neyse sonuç olarak çalıştıysa ne sorun yok :)

  25. Osman dedi ki:

    Türkçe karakter desteği olan bir font kullanıyorum. Fakat yine de Türkçe sorununu çözebilmiş değilim. Yardımcı olabilirseniz sevinirim.
    Ayrıca böyle güzel bir şeyi bizle paylaştığınız ve açıkladığınız için kendi adıma teşekkür ederim.

  26. kaan dedi ki:

    güzel ama olmuyor

  27. Gokhan dedi ki:

    Merhaba
    Bu scriptteki arkaplan resminin yerine başka bir resim koyduğumda hata veriyor.
    Yardımcı olabilir misiniz ?
    Birde o resimdeki metnin bulunacağı konumu nasıl belirleyebilriz ?

  28. kamaleddin dedi ki:

    fontu yazdırma formundan seçmek mümkün olabilirmi?

  29. Caner Öncel dedi ki:

    Tabiki olabilir. $font değişkenini $font = $_GET[‘font’]; şeklinde tanımladıktan sonra url’yi ?text=yazi&font=fonts/herhangifont.ttf şeklinde çağırarak bu istediğini yapabilirsin.

  30. kamaleddin dedi ki:

    Teşekkür ederim
    Galiba doğru anlatamadım benim istediyim siteye siren üyelerin bunu yapa bilmesiyi.

  31. kral dedi ki:

    Caner Hocam harika açıklamalar olmuş. Diğer arkadaşlarada katılımlarından dolayı teşekkürler. Php adına harika çalışma olmuş..

  32. Hasan dedi ki:

    S.a hocam ben bunu yaptım ama yeni resim nasıl eklerim yardımcı olurmusun by_antocio@hotmail.com

  33. furkan dedi ki:

    merhaba hocam ben bunu hallettim tamam ama kendi istediğim yazıyı nasıl yazdırabilirim ve birden çok resim nasıl ekleyebilirim bknz : http://www.erenfazlioglu.com/signyap/ burdaki sing yapma scriptide bu kodu kullanmış ama bunda istediğimiz yazıyı yazdırabiliyoruz birde nasıl yazıyı istediğimiz yere yazdıracağız ?

  34. mehmet dedi ki:

    yazı fontunu nasıl ayarlarız. 

  35. kamal dedi ki:

    Peki font ölçüsünü nasıl belirleriz. Yani “fontsize” olayını.

  36. Caner Öncel dedi ki:

    Şu rakamlardan biri font büyüklüğünü temsil ediyor:
    imagettftext($resim_yaz, 16, 15, 59, 222, $gri, $font, $metin); }

    Detaylı bilgi için:
    http://www.php.net/manual/tr/function.imagettftext.php

  37. kamal dedi ki:

    Teşekkür ederim. Allah razı olsun!

  38. Mert Kahveci dedi ki:

    Peki bu resmin üzerine yazılanlar kaydoluyor mu Caner abi ? Sonuçta rezil olabilecek bir ton adam tanıyorum :D

  39. Caner Öncel dedi ki:

    Hehe malesef :)

  40. MUHAMMET dedi ki:

    Merhaba egonomik com scripti kullanıyorum çok güzel ama resmi değiştirdim fakat yazıya yon nasıl verebılırım tabela resmi koydum tabelada sağ ust tasafta birde düz bunu nasıl ayarlayabiliriz

Uyarı: Yorumlarda link kullanmayınız. Link içeren yorumlar otomatik olarak spam kabul edilmektedir.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir