İyinet'e Hoşgeldiniz!

Türkiye'nin En Eski Webmaster Forum'una Hemen Kayıt Olun!

Kayıt Ol!

PHP ile resim dosyasında yazı yazarken TR karakter problemi.

GNeRaL

0
İyinet Üyesi
Katılım
24 Şubat 2005
Mesajlar
2,869
Reaction score
16
Konum
Samsun
Merhaba arkadaşlar,

Sanırım başlıkta problemi özetledim :)

Bir php dosyası oluşturdum, şu şekilde:

PHP:
<?
if(($_GET["boy"]) and ($_GET["en"]) and ($_GET["metin"]) and !empty($_SERVER['HTTP_REFERER'])) {
foreach ($_POST as $key => $value) { 
$$key = addslashes(htmlspecialchars($value)); 
}  

$h=20; // resmimizin boyu
$w=$_GET['en']; // genişlik değeri
$im=ImageCreate($w,$h); // tualimizi oluşturduk

// renk tanımlamalarımızı yapıyoruz.
$beyaz=ImageColorAllocate($im,255,255,255);
$siyah=ImageColorAllocate($im,0,0,0);
$kirmizi=ImageColorAllocate($im,255,0,0);
$navy=ImageColorAllocate($im,0,0,128);

// resmimizin arka planını boyuyoruz
ImageFill($im,0,0,$beyaz);

// resmimiz üzerinde yazı yazıyoruz.
ImageString($im,$_GET['boy'],0,3,"$_GET[metin]",$siyah);

// başlık bilgilerini gönderiyoruz tarayıcıya biz png olarak gönderdik

header("Content-type: image/png");
ImagePNG($im);
ImageDestroy($im);
// işte resmimiz hazır.
 } else {
    ?><?
    $h=40; // resmimizin boyu
$w=550; // genişlik değeri
$im=ImageCreate($w,$h); // tualimizi oluşturduk

// renk tanımlamalarımızı yapıyoruz.
$beyaz=ImageColorAllocate($im,255,255,255);
$siyah=ImageColorAllocate($im,0,0,0);
$kirmizi=ImageColorAllocate($im,255,0,0);
$navy=ImageColorAllocate($im,0,0,128);

// resmimizin arka planını boyuyoruz
ImageFill($im,0,0,$beyaz);

// resmimiz üzerinde yazı yazıyoruz.
ImageString($im,4,0,0,"Lutfen dosyaya direkt erisim SAGLAMAYINIZ!",$kirmizi);
ImageString($im,2,0,15,"(c) 2007 by xxx.tld.",$kirmizi);

// başlık bilgilerini gönderiyoruz tarayıcıya biz png olarak gönderdik

header("Content-type: image/png");
ImagePNG($im);
ImageDestroy($im);
}
?>
Burada her şey güzel, istediğim gibi de... Yazı yazdırırken Türkçe karakter problemi çıkıyor. Örneğin, ü çıkarken ş çıkmıyor. Bunu nasıl halledebiliriz?
 

iyinet

Root
Admin
Hosting Firması
Katılım
2 Eylül 2002
Mesajlar
5,028
Reaction score
63
Konum
Sakarya
Bildiğim kadarı ile Türkçe destekleyen bit True Type font kullanman gerekiyor.
 

GNeRaL

0
İyinet Üyesi
Katılım
24 Şubat 2005
Mesajlar
2,869
Reaction score
16
Konum
Samsun
Hm, örnek verebilir misin desem çok mu aşırıya gitmiş olurum?
 

FrontPage

0
İyinet Üyesi
Katılım
31 Aralık 2003
Mesajlar
475
Reaction score
0
Konum
Yozgat
yapacağın işlemi watermark ile yaparsan daha anlamlı olur düşüncesindeyim.
ayrıca if ile işlemini kontrol edip başka bir dosyayı direk göstertebilirsin.
 

MoD

0
İyinet Üyesi
Katılım
8 Nisan 2005
Mesajlar
1,722
Reaction score
2
Konum
Bursa
Manual'den gidiyoruz hep. Ama hersey var aslinda orda;)
ImageString yerine imagettftext kullanirsan belirleyecegin fontu kullanabilirsin.
http://tr2.php.net/imagettftext adresindeki ornek;

PHP:
<?php
// Set the content-type
header("Content-type: image/png");

// Create the image
$im = imagecreatetruecolor(400, 30);

// Create some colors
$white = imagecolorallocate($im, 255, 255, 255);
$grey = imagecolorallocate($im, 128, 128, 128);
$black = imagecolorallocate($im, 0, 0, 0);
imagefilledrectangle($im, 0, 0, 399, 29, $white);

// The text to draw
$text = 'Testing...';
// Replace path by your own font path
$font = 'arial.ttf'; // Font belirliyorsun. Ayni dizinde tutarsan font yolu belirmen gerekmez.

// Add some shadow to the text
imagettftext($im, 20, 0, 11, 21, $grey, $font, $text);

// Add the text
imagettftext($im, 20, 0, 10, 20, $black, $font, $text);

// Using imagepng() results in clearer text compared with imagejpeg()
imagepng($im);
imagedestroy($im);
?>
 

ArzemSah

0
İyinet Üyesi
Katılım
21 Mart 2006
Mesajlar
0
Reaction score
0
Resmi bastığın kodun tepesine şunu eklersen Türkçe karakter proplemi kalmaz...
Kod:
$text = iconv("iso-8859-9","utf-8",$text);


Burada ki $text karşıdan gelen değeri ifade ediyor. Kodlamana uygun olarak düzenlersin.

Örnek olarak; Smiley Signmaker ' da kullanmıştım ve düzeldi.
 

Türkiye’nin ilk webmaster forum sitesi iyinet.com'da forum üyeleri tarafından yapılan tüm paylaşımlardan; Türk Ceza Kanunu’nun 20. Maddesinin, 5651 Sayılı Kanununun 4. maddesinin 2. fıkrasına göre, paylaşım yapan üyeler sorumludur.

Backlink ve Tanıtım Yazısı için iletişime geçmek için Skype Adresimiz: .cid.1580508955483fe5

Üst