Php OOP'a alışmaya çalışıyorum.
Amatör olarak bir resim sınıfı yazmaya çalıştım.Biraz amatör oldu.Kısıtlı özellikleri var.
Yorumlarınızı,önerilerinizi esirgemezseniz sevinirim.
Zamanla daha da geliştirmeye çalışacağım.
Kullanımı:
<?php
include("resimcik.sinif.php"); //sınıfımızı include ediyoruz.
$resim=new resimcik('havhav.jpg');
/* resim yolunu ve adresini yazarak dosyamızı açıyoruz.isterseniz resimcik('yeni',300,400,'jpeg') yaparak 300 e 400 boyutlarında jpeg yeni bi
dosya oluşturabilirsiniz.
*/
$resim->boyutlandir(600,700); //çok rahat bi şekilde resmimizi 600 e 700 olacak şekilde boyutlandırabiliriz.
$resim->yaziyaz("Havhav",10,70,"siyah",60,0);
/* yaparak 10,70 kordinatında siyah yazıyla 60 px boyutunda 0 derece açıyla
Havhav yazdırabilirsiniz.İstseniz ek bir parametreyle fontunuzu da seçebilirsiniz.*/
$resim->saydamyazi("r10@Dualwarior",50,700,"mavi",60);
/* yaparak 50,700 kordinatında mavi renkle %60 saydamlıkla r10@Dualwarior
yazdırabilirsiniz.ek parametrelerle boyut,açı,font gibi özellikleri değiştirebilirsiniz.
*/
$resim->kordinatduzlemi();
/* yazdığımız zaman 30px kenardan boşluk bırakarak resim üzerinde çizgiler
çizerek istediğiniz kordinatı rahatcana bulmanızı sağlar.Örnek resimden daha iyi anlayabilirsiniz. */
$resim->ekranaver();
/* yaptığınız zaman resmi ekrana bastırırsınız.
Eğer $resim->kaydet('isim.uzantı',kalite); yazarsanız resmi kaydedersiniz.
örnek: $resim->kaydet('havhavcik.jpg',100); yaparsanız resmi 100 kalitesiyle
havhavcik.jpg olarak kaydedebilirsiniz.
*/Bu şekilde kullanabilirsiniz ya da yeni bi resim oluşturup cizgiciz,boya gibi
fonksiyonları kullanıp resim yapabilirsiniz fakat o olayı daha tam geliştiremedim.
Anlatım kabataslak oldu ilerde güncelleyeceğim.
resimcik sınıfımız:
<?php
/*
Resimcik sınıfı 1.0.0
Yazar: Dualwarior
*/
class resimcik {
public $fontyol="../dosyalar/font/";
public $renkler=array("beyaz"=>array(255,255,255),"siyah"=>array(0,0,0),"kirmizi"=>array(255,0,0),"yesil"=>array(0,255,0),"mavi"=>array(0,0,255));
function __construct($yol,$en=100,$boy=100,$uzn='jpeg') {
if($yol=="yeni") {
$this->resim=imagecreatetruecolor($en,$boy);
$this->en=$en;
$this->boy=$boy;
$uzanti=$uzn;
} else {
$uzan=array("jpg"=>"jpeg","jpeg"=>"jpeg","gif"=>"gif","png"=>"png","JPG"=>"jpeg","JPEG"=>"jpeg","GIF"=>"gif","PNG"=>"png");
$bl=explode('.',$yol);
$uzanti=$uzan[end($bl)] or die ("Dosya uzantısı alınamadı.");
$resacfok='imagecreatefrom'.$uzanti;
$this->resim=$resacfok($yol);
$this->en=imagesx($this->resim);
$this->boy=imagesy($this->resim);
}
$this->uzanti=$uzanti;
}
function renk($renk,$k=0,$y=0,$m=0) {
if($renk=="yeni") {
return imagecolorallocate($this->resim,$k,$y,$m);
}else {
return imagecolorallocate($this->resim,$this->renkler[$renk][0],$this->renkler[$renk][1],$this->renkler[$renk][2]);
}
}
function renk2($renk2,$kir,$yes,$mav,$sayd) {
if($renk2=="yeni") {
return imagecolorallocatealpha($this->resim,$kir,$yes,$mav,$sayd);
}else {
return imagecolorallocatealpha($this->resim,$this->renkler[$renk2][0],$this->renkler[$renk2][1],$this->renkler[$renk2][2],$sayd);
}
}
function yaziyaz($metin,$l,$z,$renk,$boyut=15,$aci=0,$font='arial.ttf',$k=0,$y=0,$m=0) {
$renk=$this->renk($renk,$k,$y,$m);
imagettftext($this->resim,$boyut,$aci,$l,$z,$renk,$this->fontyol.$font,$metin);
}
function saydamyazi ($metin,$g,$g2,$sydmrenk,$sydmlik=30,$boyut=80,$aci=45,$font='arial.ttf',$kirm=0,$yesi=0,$mavi=0) {
$renkx=$this->renk2($sydmrenk,$kirm,$yesi,$mavi,$sydmlik);
imagettftext($this->resim,$boyut,$aci,$g,$g2,$renkx,$this->fontyol.$font,$metin);
}
function boya($renk,$xx=0,$yy=0,$k=0,$y=0,$m=0) {
$brenk=$this->renk($renk,$k,$y,$m);
imagefill($this->resim,$xx,$yy,$brenk);
}
function cizgiciz($xx1,$yy1,$xx2,$yy2,$renk,$k=0,$y=0,$m=0) {
$renk=$this->renk($renk,$k,$y,$m);
imageline($this->resim,$xx1,$yy1,$xx2,$yy2,$renk);
}
function kordinatduzlemi() {
$enn=30;
$boyy=30;
$em=imagesx($this->resim)+$enn;
$by=imagesy($this->resim)+$boyy;
$dualwarior=imagecreatetruecolor($em,$by);
imagecopy($dualwarior,$this->resim,$enn,$boyy,0,0,imagesx($this->resim),imagesy($this->resim));
unset($this->resim);
$this->resim=$dualwarior;
imagechar($this->resim,0,20,20,'0',$this->renk("beyaz"));
$ensay=floor(($em)/20);
$boysay=floor(($by)/20);
$crp=20;
for($vv=0; $vv<$ensay; $vv++) {
imagestring($this->resim,0,46+($vv*$crp),5,($vv+1)*$crp,$this->renk("beyaz"));
$this->cizgiciz($crp+$enn+($vv*$crp),15,$crp+$enn+($vv*$crp),$by,"beyaz");
}
for($bb=0; $bb<$boysay;$bb++) {
imagestring($this->resim,0,5,46+($crp*$bb),($bb+1)*$crp,$this->renk("beyaz"));
$this->cizgiciz(23,49+($bb*$crp),$em,49+($bb*$crp),"beyaz");
}
}
function boyutlandir($en,$boy) {
$resim2=imagecreatetruecolor($en,$boy);
imagecopyresized($resim2,$this->resim,0,0,0,0,$en,$boy,$this->en,$this->boy);
unset($this->resim);
$this->resim=$resim2;
}
function ekranaver() {
header("Content-type:image/$this->uzanti");
$resbasfok='image'.$this->uzanti;
$resbasfok($this->resim);
}
function kaydet($isim,$kalite=100) {
$reskayfok='image'.$this->uzanti;
$reskayfok($this->resim,$isim,$kalite);
}
function __destruct() {
imagedestroy($this->resim);
}
}Not:Şimdilik siyah,beyaz,kirmizi,yesil,mavi olmak üzere 5 renk vardır.Eğer başka renk kullancaksanız renk yerine
yeni yazıp kullancağınız fonksiyona rgb olarak 3 tane ek parametreyle renginizi tanımlayabilirsiniz.
Not2: public $fontyol="/font/";
Yazı yazdırmak için bu satırı düzenleyerek font yolunu belirmeniz ve bu yola kullancağınız fontu koymanız gereklidir.Varsayılan font, arial.ttf dir.Denetim->Yazı tipleri klasöründen alabilirsiniz.
Yukarıda örnek kullanımını verdiğim kısmın çıktısı şu şekildedir:
Lütfen kaynak belirmeden yayımlamayınız.