Yönetici Arþivi

Linux’da bir komutun yolunu bulma

Gonderen: Ersin tarih: Mar.04, 2010, Kategori: Linux, İpucu

Aklıma geldiçe, hoşuma giden, kullanışlı olduğunu düşündüğüm linux shell komutlarını elimden geldiğince buradan paylaşmaya çalışıyorum.
Bu yazacağım komut da gerçekten çok işe yarayan, bilinmesi gereken bir shell komutu.

“which komutu, kendisine parametre olarak verilen, geçerli ortamda çalıştırılabilen POSIX uyumlu kabuk dosyalarının yolunu döndürür. Bunu PATH deÄŸiÅŸkeninde belirtilen yollarda, arguman olarak verilen çalıştırılabilir dosyaların isimlerini arayıp eÅŸleÅŸtirerek yapar.”

Man dosyasında yazan ve benim çevirebildiğim kadarı ile tanımı bu. Biraz karmaşık veya yanlış çevirmiş olabilirim, o yüzden kısaca özetlemek gerekirse çalıştırılabilir bir dosyanın yolunu döndürür. Örneğin

which grep

yazdığımızda bize şöyle bir çıktı verir (linux dağıtımlarına göre değişebilir) :

/bin/grep

Bu da grep komutunun çalıştırılabilir dosyasının /bin klasöründe olduğunu temsil eder.

Yorum yap :, , , devami...

Linux’da bir dosyanın içeriÄŸini boÅŸaltmak

Gonderen: Ersin tarih: Mar.01, 2010, Kategori: Linux, İpucu

Büyük dosyalar ile uğraşıyorsunuz, dosyayı silmek yerine sadece içeriğini silmek istiyorsunuz. Ama herhangi bir editör ile açtığınızda takılmalar yaşıyorsunuz ve beklerken saç baş yoluyorsunuz. Buunun daha kolay bir yolu olmalı, böyle eziyete can dayanmaz :)
Evet kolay bir yolu var, bir değil iki yolu var (en azından benim bildiğim) :
Birincisi truncate diye bir komut var , ve bununla

truncate dosyaadi

demeniz yeterli. Fakat truncate her linux sürümünde ön tanımlı gelmiyor. Bunu kullandığınız linux dağıtımının paket yöneticisinde yükleyebilirsiniz. Ama onun yerine çok daha kolay ikinci yöntemi kullanarak dosyamızın içeriğini boşaltabiliriz :

:>dosyaadi

Evet hepsi bundan ibaret, dosyanızın içeriğine baktığınızda bomboş olduğunu göreceksiniz. Yalnız şunu unutmayın, bu komutları kullandığınızda size sileyim mi diye sormayacaktır, direkt olarak dosyanın içeriğini boşaltacaktır.

Yeri gelmişken bu konuya bir ekleme daha yapayım. Harddiskde kalan alan miktarını da şu komut ile öğrenebiliriz :

df -h

Gerçi kalan alan miktarını gösteren güzel araçlar mevcut, ama gün olur ssh ile erişmeniz gerekir ve grafiksel bir arayüz bulamazsanız, mutlaka aklınızda bulunması gereken bir komuttur kendisi.

Yorum yap :, devami...

linuxda port bilgisi sorgulama

Gonderen: Ersin tarih: Feb.26, 2010, Kategori: İpucu

Bugün öğrendiğim gayet güzel bir şey. Aslında windowsda da var bu komut, ama aynı işlevi görüp görmediğini bilmiyorum.
netstat komutunu bilirsiniz, ben de biliyordum ama bu kadar işime yarayacağı hiç aklıma gelmezdi

netstat -tulpn |grep :80

netstat ı bu parametreler ile çalıştırdığımızda belirttiğimiz portta (80) çalışan, yani o portu dinleyen bir program olup olmadığını gösteriyor bize.
Şahsen benim işime çok yaradı

Yorum yap devami...

PHP ile barkod oluÅŸturma

Gonderen: Ersin tarih: Feb.25, 2010, Kategori: Deneysel

Evet bir yanlışlık yok, php ile barkod oluşturabilirsiniz. Üstelik bunun için phpde olmayan bir eklentiye de ihtiyaç duymuyoruz (GD kütüphanesi yeterli).
Yalnız bir kötülüğü var, o da barkodun yazdırılmasında PHP nin fonksiyonu kalmıyor ve bu da bazı sıkıntılara yol açabilir (barkodun yerleşimi vs ). Şahsen php ile barkod oluşturup okutmayı hiç denemedim, daha doğrusu deneme şansım olmadı. Önceden uğraştığım,yarım kalan bir projede C# ile barkod oluşturma işi ile uğraşmıştım.
Neyse, dönelim konumuza. PHP ile bunu yapabilmenin iki yolu var. Biri PEAR kütüphanesinde bulunan bir paket, burda buna değinmeyeceğim. Bunun birinci ve en önemli nedeni, artık bu paketin geliştirilmiyor olması. İkinci sebep ise PHP5 uyumluluğunun bulunmaması (en son böyleydi)
İkinci ve burda ele alacağımız yöntem ise ZendFramework 1.10 ile yeni gelen Zend_Barcode sınıfı aracılığı ile.
ZendFramework’un güzel özellilerinden biri, MVC (Model-View-Controller) yapısını kullanarak siteler geliÅŸtirebildiÄŸimiz gibi, bünyesinde barındırdığı sınıfları web uygulamalarımız içerisinde de kullanabilmemizdir.
Biz de burada ZF’nin MVC özelliÄŸini bir kenara bırakarak barkod oluÅŸturma iÅŸlemimize geçelim. Kendi yerel web sunucumuzda test için kullanacağımız bir klasör oluÅŸturalım.
Åžurdaki linkten minimal paketi indirerek uygun bir klasöre açalım. Açtığımız dosyalar içerisindeki “library” klasöründeki “Zend” klasörünü web sunucumuzda test için oluÅŸturduÄŸumuz bir klasöre kopyalayalım.
Daha sonra yine aynı klasörde index.php dosyası oluşturalım ve şu kodları yazalım :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
require_once 'Zend/Barcode.php';
# text parametresi barkod üzerine yazılacak
# yazıyı temsil etmektedir
$barcodeOpsiyonlari = array('text' => 'ERSIN-DOGAN');
#

#
// gerekli olmayan opsiyonlar
#
$rendererOpsiyonlari = array();
#
$renderer = Zend_Barcode::factory(
#
   'code39', 'image', $barcodeOpsiyonlari, $rendererOpsiyonlari
#
);
$renderer->render();

Bu kodları çalıştırdığımızda karşımıza Code39 biçiminde barkod çıktısı verecektir.

Yukarıdaki kodları açıklamaya çalışalım. Zend_Barcode sınıfı barkod oluşturmak için factory metodunu kullanır ve şu parametreleri alır
-Barkod tipi
desteklenen tipler:
Code25
Code25interleaved
Code39
Ean2
Ean5
Ean8
Ean13
….
-render tipi (image,pdf veya sizin kendi oluşturacağınız bir render metodu)
-barkod opsiyonları
-render (render için uygun bir Türkçe karşılık bulamadım) opsiyonları.

Daha ayrıntılı bilgiye ZF’nin kendi sitesinden ulaÅŸabilirsiniz.

Yorum yap :, devami...

Resim üzerine yazılan yazının saydamlığını ayarlamak

Gonderen: Ersin tarih: Feb.23, 2010, Kategori: Php Web Programlama, İpucu

Uzun bir ara oldu, planlarıma göre çok önceden yazacaktım. Burada konuya giriş yapmış ve son olarak da , resim üzerine yazılan yazının saydamlığını nasıl ayarlayacağıma değineceğimi söylemiştim.
Aslına bakarsanız gerçekten çok kolay bir şekilde bunu yapmak mümkün. Böyle bir şeye ihtiyaç duyduğumda, araştırma yaparken çok farklı örnekler ile karşılaştım. Ve bunların çoğu karmaşık yollar ile anlatılmıştı. Hiçbiri isteklerime uymuyordu. Sadece resim üzerine bir yazı yazacaktım ve bu yazının saydamlığını istediğim gibi ayarlayabilmeliydim.
Ve en sonunda çözümü (aslında ilk bakmam gereken yerde) php manualde gördüm.
Önceki örneğimizden devam edelim :

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
// resmimizi oluÅŸturuyoruz
$resim=imagecreatetruecolor(200,50);
// resmimizi boyayacağımız rengi oluşturuyoruz
$renk = imagecolorallocate($resim, 176,196,222);
// resmimizi boyuyoruz
imagefill($resim, 0,0, $renk);
// yazı rengimizi belirtiyoruz

             //$yaziRengi = imagecolorallocate($resim, 0,0,0);
// eski örneğimizdeki yazı rengi bu biçimdeydi
// sadece bu satırı aşağıdaki gibi değiştirmek bizim için yeterli
$yaziRengi = imagecolorallocatealpha($resim, 0,0,0,100);
/*
 * burada ek olarak gelen 100 parametresi saydam bir renk
 * oluÅŸturmaya yarıyor. Bu deÄŸer küçüldükçe saydamlık azalır,
 * bu deÄŸer büyüdükçe saydamlık artar. 127 son deÄŸerdir ve
 * bu deÄŸeri girdiÄŸinizde yazımızı veya her ne için kullanacaksak
 * o nesne tamamen saydam olacaktır
 */

// yazımızı resmin üstüne yazıyoruz
imagestring($resim, 5, 20, 50/3, 'www.ersindogan.com', $yaziRengi);

// tarayıcıya dosyamızı algılaması için direktif veriyoruz
header('Content-type: image/png');
// ve sonucu çıktılıyoruz
imagepng($resim);
imagedestroy($resim);

Evet ,işte bu kadar. Sadece farklı bir fonksiyon kullanıp bir parametre ekleyerek bu işlemi kolaylıkla gerçekleştirebiliriz. Hazır yeri gelmişken, konu ile alakalı bir fonksyiondan daha bahsederek bitireyim.

imagefttext, bu fonksiyon imagestring gibi resim üzerine yazı yazmamızı sağlar. Ama ekstra bir özelliği daha var, o da resim üzerine istediğimiz bir font (FreeType 2 tipinde) ile yazdırabilmesidir.

array imagefttext ( resource $resim , float $boyut , float $açı , int $x , int $y , int $renk , string $yazıtipi , string $metin [, array $ekbilgi ] )

Fonksiyonun aldığı parametre yukarıdaki gibi, burda dikkat etmeniz gereken yazı tipini verirken, fontun yüklü olduğu tam yolu belirtmenizdir. Fontu bulamaz ise resim üzerine yazı yazılmayacaktır.

Yorum yap :, devami...

Fatal error: Cannot redeclare class Zend_Loader

Gonderen: Ersin tarih: Feb.21, 2010, Kategori: İpucu

Bu sorunla karşılaşan arkadaşlar var ise, çözümü çok basitmiş.
Sadece config.ini dosyasındaki

includePaths.library = APPLICATION_PATH “/../library”

satırının önüne noktalı virgül ekleyerek bu sorunu çözebiliriz.

;includePaths.library = APPLICATION_PATH “/../library”

Sorunun temelinde anladığım kadarı ile, Zend Tool çalışırken Zend kütüphanelerini yüklemekte, üstüne bizim uygulamamız da Zend kütüphanelerini yüklemeye çalışınca bu hatayı veriyor.
Ben bu hata ile Zend Tool kullanırken karşılaştım. Önceden oluşturduğum bir projeye ekstra bir modül eklemek istedim bu aracı kullanarak, ama bu sefer bu hatayı verdi.
Hazır çözümü bulmuşken paylaşayım dedim, çokca karşılaşılabilecek bir problem değil ama yine de birilerinin işine yarar sanırım.

Yorum yap :, devami...

PHP ile web servis oluÅŸturmak

Gonderen: Ersin tarih: Feb.14, 2010, Kategori: Php Web Programlama

Sanırım ilk önce web servis nedir, neden gereklidir kısaca buna değinmek gerek. İnternette çokca kaynak bulabilirsiniz bu konuda, güzel anlatılmış ,bolca teknik terimler ile desteklenmiş. Ama ben farklı bir yaklaşım tarzı ile, mümkün olduğunca sade bir biçimde ele almaya çalışacağım.

Güzel bir uygulama geliştirdik, güzel güzel çalışıyor. Ama gün geldi farklı bir platformdan,farklı fiziksel bir yerdeki bir uygulama ile iletişim kurması, veri alışverişi yapması gerekti. Ne yapacağız, o dili mi öğreneceğiz ?  İşte bu durumda web servisler devreye giriyor.

Web servis ile, internet üzerinde herhangi bir platformdaki, herhangi bir dille yazılmış bir uygulama ile veri alışverişi gerçekleştirebiliriz. Bunu sadece veri alışverişi olarak sınırlamak da pek doğru değil, ama girişte bunun böyle bilinmesi sanırım yeterli olacak.

Konumuza bir örnek ile devam edelim. Bir siteniz var ve bu sitenizden kullanıcılarınız üyelik sistemi ile yararlanabiliyor. Bu sistemde kullanıcılarınıza SMS ile bilgi vermeye yarayan bir özellik aktif etmek istiyorsunuz. Ama bu servisi kontrol etmek elimizde değil, bu yüzden farklı bir yerden satın almak zorundayız. Biz SMS servisini satın aldıktan sonra, satıcı bize SMS gönderme işlemini kendi uygulamamız içerisinde gerçekleştirebilemiz için bir API (Applcation Programing Interface Uygulama Geliştirme Arayüzü) sunar. İşte bu API lerin iletişim yöntemlerinden biri de web servislerdir.

Yukarıda da bahsettiğimiz gibi, farklı platformlarımız var, ve bunların birbiri ile anlaşması gerekiyor. İşte burda da SOAP devreye giriyor. SOAP (Simple Object Access Protocol , Basit Nesne Erişim Protokolü). Tabiki ne bu bahsettiğimiz API çağrıları için, ne de web servis işlemleri için tek protokol SOAP değildir. Ama burda vereceğim örnekteki amaç SOAP dır.

PHP ile web servis geliştirme işlemi gerçekten çok kolaydır. Bunu iki farklı yöntem ile gerçekleştirebiliriz. Birincisi WSDL yardımı ile, ikincisi WSDL olmadan direkt PHP sınıfları ile. Birinci seçenek farklı bir yazımın konusu olacağından, ikinci yönteme geçelim.

Sistemin işleyebilmesi için bir sunucu , bir de istemci olması gerekiyor. Her ikisinin farklı yerde , farklı platform/dil de olması gerekiyordu, bizim örneğimizin işlevselliğini gösterebilmek için. Ama elimizde şu anda PHP var ve bu yüzden diğer özellikleri bir kenera bırakarak salt PHP ile yolumuza devam ediyoruz.

İlk önce sunucu tarafındaki kodlarımızı oluşturalım :

1
2
3
4
5
6
7
<?php
class SMS {
    public function gonder($mesaj,$konu,$kime){
        return 'mesaj gonderildi';  
        }
}
 $sunucu=new SoapServer(null,array('uri'=>'http://ersindogan-testuri'));

$sunucu->setClass(‘SMS’);

$sunucu->handle();

Yukarıdaki kodumuzun içeriği bir anlamda tam değil, sadece uzak yordam çağrısı yapacağız, bize bir sonuç döndürmesi yeterli. Bu yüzden SMS mesajını başarılı bir biçimde göndermiş gibi yapan bir sunucu oluşturduk. Evet birkaç satır kod ile bunu başardık. Şimdi kısaca anlatmatya çalışayım yukarıdaki kodu :

SMS diye bir sınıf oluşturduk, bu sınıfımız SMS göndermeye , SMS gönderme işleminin sonucunu döndürmeye yarıyor. Sunucu olarak oluşturduğumuz nesne bir SoapSever nesnesi. Bu SoapServer nesnemiz, gelen uzak yordam çağrılarının, belirlenen şartlar doğrultusunda çalıştırılmasını ve sonucunun istemciye döndürülmesini sağlamak ile görevli.
Burda SoapServer nesnemize, SMS sınıfını baz almasını ve bu nesnenin metodlarını çalıştırabileceğini söyledik. Eğer bunun dışında çalıştırılması istenenen sınıf-fonksiyon çağrısı gelirse SoapServer istemciye hata döndürecektir.

SoapSever nesnemizi burda WSDLsiz oluşturduk ,WSDLsiz oluşturduğumuz için bir URI (Uniform Resource Identifier Tekörnek Kaynak Tanımlayıcı) tanımlamamız gerekir, bu uri herhangi bir benzersiz url olabilir. Bunu değiştirip değiştirmemek size kalmış. Daha sonra sunucumuzun baz alacağı nesnemizi tanımlıyoruz, son olarak da handle metodu ile de sunucumuzun gelen isteklere cevap vermesini sağlıyoruz. Şimdi de istemci tarfımızı oluşturalım.

1
2
3
4
<?php
$istemci=new SoapClient(null,array('uri'=>'http://ersindogan-testuri','location'=>'http://localhost/test/sunucu.php'));
var_dump($istemci->gonder('mesaj','konu','kime'));
?>

İşte istemci tarafımızda bitti. Yukarıdaki kodu anlatmadan önce, web sunucunuzda test diye bir klasör oluşturup içerisine sunucu.php ve istemci.php adında iki dosya ekleyin. sunucu.php dosyasına sunucu ile ilgili kodları ekleyin, istemci.php dosyasına da istemci ile ilgili kodları kopyalayıp dosyaları kaydedin. Daha sonra adres satırından http://localhost/test/istemci.php yazdığımızda

string ‘mesaj gonderildi’ (length=16)

biçiminde bir mesaj verecektir.
Şimdi en son yazdığımız kodu anlatabiliriz. Yukarıdaki kodda, istemcimiz , belirtilen sunucudaki metodu çağırdı ve sonucu aldı.
Çoğunlukla bu tür işlemleri aynı makinada, aynı platformda, hatta aynı programlama dilinde bile yapmazsınız. Taraflar hep farlıdır, ama anlaşma metodu ortaktır. İşte bu ortak nokta yardımı ile uzak sistemden bir yordam çağrısı yaparak işlemlerimizi gerçekleştirebiliriz.
Konuyu elimden geldiğince toparlayarak anlatmaya çalıştım, eksik -anlaşılmayan yerler olursa yorum düşerseniz cevaplarım mutlaka.
Bu konunun bir sonraki adımı WSDL de görüşmek üzere, hoşça kalın.

Yorum yap :, , , , , , devami...

Wordpress’de yeni gönderi (post) ekleyince hata vermesi

Gonderen: Ersin tarih: Feb.01, 2010, Kategori: İpucu

Bir wordpress güncellemesinden sonra başıma gelen bir olaydı bu. Wordpress’i güncelledim , herÅŸey yolunda gibi görnüyordu. Ama bir gönderi eklemek istediÄŸimde hata verip gönderiyi kaydetmedi. Sonrasında bunu , php etiketlerine veya hoÅŸuna gitmeyen birÅŸeyler ile karşılaÅŸtığında yaptığını fark ettim.
İlk zamanlar , çok fazla yazı yazmadığım için önsemedim, bu şekilde kullanmaya devam ettim. Ama bir gün bir yazı yazarken o kadar sinir etti ki bu durum. Çözüm yolları aramaya başladım, o zaman ne gibi bir problem ile karşı kaşıya olduğumu anlayamadığım için aramalarım boşa gitti.
Ama sonradan tesadüfen okuduğum bir yazıda çözümü gördüm :) Olay sunucuya kurulmuş olan mod_security den kaynaklanıyormuş, bunu düzeltmenin yolu da .htaccess dosyanıza aşağıdaki satırları eklemek.

1
2
3
4
<ifmodule mod_security.c>
SecFilterEngine Off
SecFilterScanPOST Off
</ifmodule>

Hepsi bu kadar, bundan sonra yine sinirsiz , stressiz gönderileri eklemeye devam edebilirsiniz

Yorum yap devami...

Ubuntuda bilgisayarı TV ye bağlamak

Gonderen: Ersin tarih: Feb.01, 2010, Kategori: İpucu

Aslına bakarsanız bu konu yazdığım yazıların profiline uymasada, bu konuyu burda paylaşmak istedim. Çünkü ( bilgisayarınız destekliyor ise ) çok kolay ve gerçekten işe yarayan bir şey.
Malzemeler :
S-video kablosu
svideo-kablosu
Sesi aktarabilmek için ses kablosu
ses-kablosu
Eğer TV de s-video ve ses girişi için gerekli yerler yoksa aşağıdaki gibi bir scart adaptörü
scart-girisi
Kabloları gerekli yerlere bağladıktan sonra scart-kablosuna-baglanmis-composit-ve-svideo-kablolariscartin-tvye-baglanmis-halisvideo-kablosu-ve-bilgisayar-cikisises-cikisi
Bilgisayarda gerekli ayarları yapmaya geldi. Yalnız benim kullandığım sistem ile sizin kullandığınız sistem arasında farklılıklar olabilir. Ama eğer temel mantığına dikkat ederseniz kendi sisteminize uyarlayabilirsiniz diye tahmin ediyorum.
Ben Ubuntu 9.10 ingilizce kullanıyorum ve ekran kartım NVIDIA Geforce 700M.
Ayarları System >Administration>Nvidia X Server Settings
Türkçe karşılığı Sitem > Yönetim >Nvidia X Sunucu Ayarları
bölümünden yapacağız. Bu ekrana geldiğinizde aşağıdaki gibi bir ekran ile karşılaşacaksınız
ubuntuda-bilgisayarin-tvye-baglanmasi
“Dedect Displays” (Ekranları algıla) dedikten sonra TV yi bulacaktır ( eÄŸer baÄŸlantıları yaptıysanız ) .  TV ekranını seçip  configure ( ayarlar) dedikten sonra gelecek olan ekrandan
tv-ayaralri
twinview ( ikiz görüntü ,bilgisayar ekranında işlerinizi yapmaya devam ederken TV ekranında film izlemenize olanak verir) seçip OK dedikten sonra yola devam edeceğiz.
Bu aslında bizim için yeterli, ayarları uygula (Apply) deyip , ayarların uygulanıp uygulanmamasını soran bir onaydan sonra işlem tamamlanacak. Sonra TV de AV tuşu ile uygun AV kanalını seçince ( ben AV2 ye takmıştım , bu yüzden AV2- S i seçtim) görüntüyü TV den görebileceğiz.
Bundan sonrasında birkaç ipucu vereceğim. Birincisi bağlantıyı S-video kablosu ile yaptığımız için AV kanalı seçerken mutlaka S kanalı olan bir AV seçmeliyiz.
Denemelerimde gördüğüm şey, eğer S kanalı olmayan bir AV kanalı seçersem görüntüde inanılmaz titreşimler ve renk kaymaları olduğu idi. TV de iki adet SCART girişi vardı. AV1 de S kanalı olmadığı için AV2 yuvasına takarak kullanıyorum.
İkinci dikkat edilmesi gereken ÅŸey, bilgisayarın görüntüsü TV ye aktarılınca kenarda boÅŸluklar kalıyor bunuda nvidia ayar ekranından TV-0 bölümünden “TV OverScan” deÄŸerini arttırarak aÅŸabiliriz. Bu deÄŸeri kendi ekranınıza göre yapabilirsiniz.
Son olarak TV-0 ekranından Tv ekranınızdaki görüntüler için gerekli ayarları yapabilirsiniz ( renk ayarları, ekran titreşim ayarları)
Aslında konu burada şimdiye kadar yazdığımdan daha uzun olacaktı , ama gereksiz ayrıntılardan kaçınıp biraz sadeleştirmek istedim, umarım işinize yarar.
Hoşça kalın.

Yorum yap devami...

PHP ile resim üstüne yazı yazdırmak

Gonderen: Ersin tarih: Jan.31, 2010, Kategori: Php Web Programlama

Uzun zamandır yazmıyorum bloguma, bugün bunun acısını çıkarırcasına , yazmak isteyip de, vakit bulamadığım konular üzerine yazıyorum :)
Bildiğiniz veya artık bundan sonra bileceğiniz gibi, php ile resim işlemleri de yapabilmekteyiz. PHP nin resim işlemleri için birkaç eklentisi var. Fakat ben örneğimde GD kütüphanesini baz alacağım.
Burdaki amacımız elimizde bulunan bir resim üzerine istediğimiz bir yazıyı yazdırabilmek. Bunu yapabilmek için GD eklentimizi kurmamız gerekir. GD kütüphanesini kurduktan sonra yazacağımız birkaç satırlık kod ile rahatlıkla istediğimiz şeyi gerçekleştirebileceğiz :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// resmimizi oluÅŸturuyoruz
$resim=imagecreatetruecolor(200,50);
// resmimizi boyayacağımız rengi oluşturuyoruz
$renk = imagecolorallocate($resim, 176,196,222);
// resmimizi boyuyoruz
imagefill($resim, 0,0, $renk);
// yazı rengimizi belirtiyoruz
$yaziRengi = imagecolorallocate($resim, 0,0,0);
// yazımızı resmin üstüne yazıyoruz
imagestring($resim, 5, 20, 50/3, 'www.ersindogan.com', $yaziRengi);

// tarayıcıya dosyamızı algılaması için direktif veriyoruz
header('Content-type: image/png');
// ve sonucu çıktılıyoruz
imagepng($resim);
imagedestroy($resim);

Burada ek olarak bahsedeceğim şey iamgestring işlevi. Aslında bu işlev tam olarak yazımızın konusu, yani resim üzerine yazı yazmamızı sağlayan işlev.
Bu işlevdeki ilk parametre üzerine yazı yazılacak resimdir .
İkinci parametre yazı yazmak için kyllanacağımız font tipini belirtiyoruz. 1 den 5 e kadar latin2 kodlamalı yerleşik yazı tiplerini seçebilir veya imageloadfont metodu ile kendi fontumuzu kullanabiliriz.
Üçüncü ve dördüncü parametreler yazının koordinatlarını (x,y) belirtmek için kullanılır.
Beşinci parametre resmi üzerine yazılacak metin.
Altıncı parametre ise yazı rengini belirler.
Yuarıdaki kodun çıktısı aşağıdaki gibi olacaktır :

php-ile-resim-ustune-yazi

Eğer kodları aşağıdaki biçimde değiştirisek :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// rengimizi oluÅŸturuyoruz
$resim=imagecreatetruecolor(50,250);
// resmimizi boyayacağımız rengi oluşturuyoruz
$renk = imagecolorallocate($resim, 176,196,222);
// resmimizi boyuyoruz
imagefill($resim, 0,0, $renk);
// yazı rengimizi belirtiyoruz
$yaziRengi = imagecolorallocate($resim, 0,0,0);
// yazımızı resmin üstüne yazıyoruz
imagestringup($resim, 5, 10, 220, 'www.ersindogan.com', $yaziRengi);

// tarayıcıya dosyamızı algılaması için direktif veriyoruz
header('Content-type: image/png');
// ve sonucu çıktılıyoruz
imagepng($resim);
imagedestroy($resim);

Bu sefer de aşağıdaki gibi bir çıktı alırız

php-ile-resim-ustune-dikey-yazı-yazdırmak

Aslında beni en çok uğraştıran, ama çözümü gözümün önünde duran, resim üzerine yazılan yazının saydamlığını ayarlayabilme konusuna bir sonraki yazıda değineceğim.

Buradaki örnekleri geliştirerek kendinize uygun çözümler oluşturabilirsiniz. Hoşça kalın

Yorum yap :, , devami...

Birşey mi aradın ?

Sitede arama yapmak icin asagidaki formu kullanin:

Hala aradigini bulamadin mi ? Gönderiye bir yorum bırak, ya da benim ile iletişime geç, elimden geldiğince yardimci olurum!

Tavsiye olunur!

Tavsiye baglantilar