• 27-01-2008, 14:06:23
    #1
    Resmi üzerine yazı yazmak için yapılmış bir dizi kod var elimde. Şu şekilde;
    <?php
    $dosya=$_GET['r'];
    $resim = imagecreatefromjpeg($dosya);
    $boyutlar = getimagesize($dosya);
    $basla1 = $boyutlar[0]  + 5; 
    $basla2=10;
    $beyaz = imagecolorallocate($resim, 255,255,255); 
    $siyah = imagecolorallocate($resim, 0, 0, 0); 
    $yazitipi = 'tahoma.ttf';
    imagettftext($resim, 10, 0, $basla2, $basla1, $beyaz, $yazitipi, "Yazı");
    header("Content-type: image/jpeg");
    imagejpeg($resim);
    imagedestroy($resim);
    ?>
    Burda yapmak istediğim r değişkenine başka bir siteden aldığım resmin linkini atadığımda onunda altına yazı yazması. Eğer böyle birşey mümkün değilse resmin linki ile kendi hostuma almak için gerekli fonksiyon nedir?

    Bir ikinci sorum ise yazdığım yazıyla birlikte resmin yazılı bölgesinde bazı bozulmalar oluyor, yazı anti-aliasing ile yazıldığı için sanırım çevresi biraz dağılıyor. Bunu kaldırabilirmiyim?

    Üçüncü sorum da bu yazıyı renklendirirken gradient gibi özel efektler kullanabilir miyim?

    Dördüncü sorum resmin üzerine yazı yazmak ile ilgili bir sürü yazı var ama resmin üzerine resim yapıştırmak ile ilgili birşey bulamadım. Böyle bir fonksiyon var mıdır? Bunu istememdeki amaç sitenin logosunu resmin kenarına koymak, ama bunu yaparken de logonun beyaz olan kısımlarını temizlemek istiyorum.

    Son sorumda yazılı resmin linkini verirken img.php?r=resim.jpg şeklinde vermek yerine direk resmin linkini yazınca yazılı gelmesini sağlayabilir miyim? Başkalarının sitemdeki resimleri almasını önlemek için. .htaccess ile birşeyler yapılabilir diye düşündüm ama daha basit bir düşüncesi olan varsa onu denemek istiyorum.

    Çok soru sordum ama acemiyiz ne yapalım Yardımlarınızı bekliyorum.
  • 27-01-2008, 23:26:07
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    function yaz($eski,$yeni,$text,$font)
    {
    $resmim = imagecreatefromjpeg($eski);
    if(!$resmim)
    {
    die("Böyle Bir Resim Yok");
    }
    
    $yellow = imagecolorallocate($resmim, 255, 255, 0);
    $black = imagecolorallocate($resmim, 0, 0, 0);
    $width = imagesx($resmim);
    $height = imagesy($resmim);
    imagefilledrectangle($resmim, 0, ($height-18) , $width, $height, $black);
    $yazilacak = ( $width - imagefontwidth($font)*strlen($text) )/2;
    imagestring($resmim, $font, $yazilacak, $height-18, $text, $yellow);
    imagejpeg($resmim,$yeni);
    imagedestroy($resmim);
    echo 'Resime yazı Yazıldı';
    }
    
    Kullanımı Şöyle 
    
    yaz("eski_resim.jpg","yeni_resim.jpg","s4l1h","3");
    eski_resim.jpg Yazılacak olan dosya
    yeni_resim.jpg yazı yazıldıktan sonra oluşturulacak Dosya Adı
    s4l1h Resime Yazılacak yazı
    3 Yazı Boyutu

    resimleri curl yada file_get_contents İLe Hostuna Çekebilirsin

    Buradan Resmin Üzerine Yazılmadan Önceki hali ve sonraki haline Bakabillirsin
  • 28-01-2008, 19:54:52
    #3
    İlgin için teşekkürler. Benim istediğim resmi üstüne yazı yazıp hostuma kaydetmek değildi. Sonradan sitenin adı değişirse sadece fonksiyondaki yazıyı değiştirerek bütün resimlerin yazısını değiştirebilmek istiyorum. Ama aynı zamanda resimlerin linklerinin img.php?r=resim.jpg gibi değil kendi yoluyla gözükmesini istiyorum. Çok mu şey istiyorum En azından böyle bişeyin mantığıyla ilgili birşeyler söylerseniz kendim uğraşırım.
  • 29-01-2008, 09:31:45
    #4
    Üyeliği durduruldu
    forumxtr adlı üyeden alıntı: mesajı görüntüle
    İlgin için teşekkürler. Benim istediğim resmi üstüne yazı yazıp hostuma kaydetmek değildi. Sonradan sitenin adı değişirse sadece fonksiyondaki yazıyı değiştirerek bütün resimlerin yazısını değiştirebilmek istiyorum. Ama aynı zamanda resimlerin linklerinin img.php?r=resim.jpg gibi değil kendi yoluyla gözükmesini istiyorum. Çok mu şey istiyorum En azından böyle bişeyin mantığıyla ilgili birşeyler söylerseniz kendim uğraşırım.
    küstahlık olarak algılama sadece tasiye bildiğim kadarı ile forumda bütün yazıyı kalın olarak yazmak yasak. düzeltirsen başın ağrımaz
  • 29-01-2008, 14:41:15
    #5
    Ne küstahlığı, teşekkürler uyarı için.
  • 30-01-2008, 23:44:17
    #6
    peki dizindeki resimler in hepsine birden , yeni dosya oluşturmadan üstüne yazı yazabilirmiyiz.
  • 31-01-2008, 13:56:20
    #7
    S4l1h 'in verdiği fonksiyonu kullanarak, bir döngü ile halledebilirsin. Veritabanından resimlerin adlarını çekip fonksiyonu orda kullanırsın. Ama resimlerin adları veritabanında kayıtlı değilse, farklı bir yol izlemen gerek. Klasördeki resimleri adlarıyla birlikte sıralayan bir kod olduğuna göre bu fonksiyonu orda kullanabilirsin. Ama ben 2. yolu daha önce kullanmadığım için birşey yazamayacağım.