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

Facebook Yorumları

53 Yorum

  1. Batuhan

    Öncelikle çok teşekkür ederim. Zamanında çok karıştırmıştım  yapmak için. Fakat aklıma takılan önemli bir nokta var. Ben bu özelliği mevcut bir formumda kullanmak istiyorum. İki kutu var.  İki kutuya farklı sayılar girilip hesaplaya basılıyor. Ve ben her defasında farklı çıkan bu sonucu resmin üstüne yazdırmak istiyorum. Ne yapabilirim, yardımcı olursanız sevinirim.

  2. ismail

    emeğin için teşekkürler, çok iyi paylaşım olmuş,
    bir sorum olacak birden fazla yazı yazdırm $text=aa&$text1=bbb$text3=ccc vs.. konumlarınıda ayarlayabiliyoruz,
    sorum şu olacak hocam: resim genişliğinin 960pixel oldugunu varsayarsak girilen textleri otomatik ortalattırabilirmiyiz acaba cok kastım olmadı bi fikir verebilirseniz cok memnun olurum,
    Teşekkürler..

  3. Ahmet Ozalp

    caner abi ben bunu caps uygulaması için kullancamda en altta kırmızı şerit nasıl atarım ? php ile örnek resim //* http://www.gardropfuat.com/capsyap/popi.png *// alttaki kırmızı çizgi gibi

    • Caner
      Yazar

      Koordinatları değiştirerek ayarlayabilirsin, şunları yani:

      1
      2
      imagettftext($resim_yaz, 16, 15, 59, 222, $gri, $font, $metin);
      imagettftext($resim_yaz, 16, 15, 58, 221, $siyah, $font, $metin);
  4. Oğuzhan AHISKALI

    Biraz daha complex bi çalışma yaptım;
    http://bit.ly/1fUkLEk

    fakat text’i resim haline dönüştürürken ftp’de belirteceğim dizine png yada jpg formatında kaydetmesini istiyorum. Bunu ne şekilde sağlaya bilirim?

  5. mea

    peki resim uzerine uzun bir not yazmak istiyorsak eger; notumu tek bir satirda degilde bir kaca satir olusturacak sekilde olursa nasil kodlamamiz gerekir

  6. biri

    merhabalar ben kodları aynen kopyalayıp yapıştırdım. local hosta ile çağırdığımda “grafik dosyası hatalı oldğu için gösterilemiyor” hatası aldım. buradaki buton ve yazı yazma bölümü için ekstra bir form oluşturuyormuyuz ayrıca resmi hangi dosyaya atıyoruz biraz daha ayrıntılı anlatırsanız çok sevinirim

  7. orhan

    merhaba resmi kullanıcıya seçtirip anında üstüne yazı yazma aktif olsa caps gibi onu kaydet indir gibi seçenekleriyle nasıl yaparız yanlış anlaşılmasın kod istemiyorum hazır halini jquery mi kullanılmalı yoksa php ile yapabilirmiyiz.

  8. emre özdeş

    Hocam yazıya nasıl yön verebiliriz yani belirli bir alan içerisine nasıl alabiliriz? Yardımcı olabilir misin?

  9. Cagdas

    Peki resim cıktısını “resimyaz.php?text=Yazi” bir download butonuna tanımlayabiliyormuyuz.Resim %50 oranında kucuk onizleme yapıcak altta bir download butonu olacak kullanıcı resmı indirebilecek hatta bir buton daha ekleyip tekrar dene yapılabılırmı.

  10. emre

    Hocam belirli bir alana ayarlayabiliyor muyuz?
    Mesela yazıyı uzun yazınca bir alt satıra, bir alt satıra inecek şekilde yapabilir miyiz?

  11. ahmet gültekin

    merhaba , alt satıra da geçmek için ne yapabiliriz. php 7 ile bazı değişimler’de oldu güncel hale getirdim fakat yazıyı alt satıra geçirmek için ne yapmalıyım tek satıra sığmayan yazılarım var. atıyorum 4 5 satıra sığacak yazım var fakat tek satıra yazıyor.

  12. erkan

    Merhaba, form alanında name= kısmında option[] yazıyor ve bunu kaldırmam mümkün değil çünkü başka bir işlevi var. bunu php sayfasında text alanına yazdığımda çalışmıyor.
    ayrıca resmin png dosyasından değil ürün sayfasında hangi ürüün resmi varsa oradan çekmek istiyorum o da şöyle bunu da resmin çekildiği yere yazdığımda resmi çekmiyor. Bunları nasıl yapabilirim?

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