Şimdi Ara

PHP'de Fotoğraf Üzerinde İşlemler

Bu Konudaki Kullanıcılar:
2 Misafir - 2 Masaüstü
5 sn
20
Cevap
0
Favori
1.527
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Herkese merhaba. internette yüzlerce forum da gezdim ama nedense burayı daha yeni keşfediyorum... Sanırım çok şey kaçırmışım.

    Hemen bir soru ile aranıza katılayım dedim. Bir php kullanıcısı(acemi) olarak php de web sayfasına eklenen bir fotoğrafın width, height ve dosya büyüklüğünü düşürerek nasıl yayınlarız. Biraz daha açık olarak şöyle sorabilirim. Örneğin 800x600 olarak web sayfasına yüklenen bir fotoğrafın index lendiği bir ana sayfada width, height değerleri %70 oranında düşürülmüş dosya boyutununda belirli ölçülerde düşürülerek yayınlanmasından bahsediyorum.www.fotokritik.com da böyle bir durum sözkonusu. Örnek olarak bakılabilir.

    Teşekkürler...







  • <?php
    function resmesekilverencan($resimcan,$yuzde) {
    $boyutlar = getimagesize($resimcan);
    $width = round(($boyutlar[0]/100) * $yuzde);
    $height = round(($boyutlar[1]/100) * $yuzde);
    echo "<img src='sock001.jpg' width=$width height=$height>";
    }
    resmesekilverencan("resimcan","yüzde");
    php?>




    resmesekilverencan("resimcan","yüzde");

    bu satirdaki resimcan yerine resim yolu, yüzde yerinede sayisal deger girilecek. ornek

    resmesekilverencan("resimler/resmim.jpg","70");

    Test edilmistir...



    < Bu mesaj bu kişi tarafından değiştirildi Guest -- 9 Kasım 2004, 15:33:30 >
  • Değerli cezve...
    İlgin için teşekkür ederim. Kod çok güzel çalışıyor fakat dosya boyutu olarak fotoğraf aynı. Yani açılan fotoğrafın kb si saklı olan fotoğraf ile aynı. Sadece abatlarda bir küçültme söz konusu. Böyle olunca aşırı büyük fotoğrafların olduğu bir dizinden fotoğrafları index lemeye çalıştığımda sayfa yavaş gelmezmi?
  • evet dogru, ilk mesajda durumu zaten yazmissin ama demek istedigini tam anlayamamisim..
    ona da gireriz, donecem sana yani...



    < Bu mesaj bu kişi tarafından değiştirildi Guest -- 9 Kasım 2004, 16:08:29 >
  • gd library ishini gorur.

    bu sayfada hersey var:
    http://de3.php.net/gd
  • function resimidataolarakkucultencan($resimcan,$yuzde){
    $cancan = imagecreatefromjpeg($resimcan);
    $boyutlar = getimagesize($resimcan);
    $xcan = round(($boyutlar[0]/100) * $yuzde);
    $ycan = round(($boyutlar[1]/100) * $yuzde);
    $sefilcan= ImageCreateTrueColor($xcan,$ycan);
    ImageCopyResampled($sefilcan, $cancan, 0,0,0,0,$xcan,$ycan,$boyutlar[0],$boyutlar[1]);
    imagejpeg($sefilcan, "yeni_".$resimcan);
    }
    resimidataolarakkucultencan("resimcan.jpg","190");




    aslinda kodu direkt vererek sana zarar veriyorum. umarim olayin(zarar olayinin) farkindasindir...

    Test Edilmistir...
  • tabi bu kodun calismasi icin php "gd" extension'unun yuklenmis olmasi lazim.
  • ondan once de php nin yuklu olmasi lazim...
  • Değerli cezve ilgin için saol. Zararını biliyorum ama bu sadece yazmak istediğim bir kodun parçası. Biterse sizinle paylaşırım. Bu arada Dig dediğin gibi çalışmadı. Bende neden çalışmıyor diye tırmalamaya başladım... Netcez şimdi
  • gd extension ini acmadan elbet calismaz..

    php.ini icerisindeki

    ;extension=php_gd2.dll

    bu satirdan

    ';' noktali virgulu kaldir

    extension=php_gd2.dll

    bu hale getir. kaydedip dosyayi kapat..

    apache yi yeniden başlat...



    < Bu mesaj bu kişi tarafından değiştirildi Guest -- 10 Kasım 2004, 15:24:38 >
  • kodu yazdigin sayfayi aynen kopyalar misin? bakalim....



    < Bu mesaj bu kişi tarafından değiştirildi Guest -- 10 Kasım 2004, 15:15:48 >
  • ÇOK PROFESYONELCE KODLANMAMIŞ OLABİLİR AMA TAM OLARAK BÖYLE BİR YAPIYA SAHİP. BU KODA EKLEYECEĞİM. KOD resim/resimler/ DİZİNİ ALTINDAKİ FOTOĞRAFLARI LİSTELİYOR.




    <html><head><title>Fotoğraflar</title></head><body>
    <div align="center">
    <center>
    <table border="1" width="100%" style="border-collapse: collapse" bordercolor="#111111" cellpadding="0" cellspacing="0">
    <tr>
    <td bgcolor="#F1F1F1">
    <p align="center"><font face="Verdana" size="2"><b>Fotoğraflar</b></font></td>
    </tr>
    </table>
    <br>
    <table border="1" cellpadding="2" cellspacing="1" style="border-collapse: collapse" width="100%" id="AutoNumber1" bordercolor="#F1F1F1">
    <tr>

    <?
    $iSayfadaResimAdedi = 10;
    $iSayfa = 1;
    if (isset($_GET["sayfa"])) $iSayfa = $_GET["sayfa"];
    //**************************************************************************
    $strKlasorName = "resim/resimler/";// Klasör Yolu
    //**************************************************************************
    $strArifAlbayrak = @opendir($strKlasorName);
    if (!$strArifAlbayrak){
    echo "Resim Bulunamadi!";
    }
    else{
    $bol = 5;
    $yuzde = ceil(100/$bol);
    while ($strFileName = readdir($strArifAlbayrak)){
    if (is_file($strKlasorName."/".$strFileName) && eregi(".jpg",$strFileName)) {
    $strFileArray[] = $strFileName;
    }
    }
    $strFileCount = count($strFileArray);
    $strFileArray= array_splice($strFileArray,($iSayfa-1)*$iSayfadaResimAdedi,$iSayfadaResimAdedi);
    for ($i=0; $i < count($strFileArray); $i++){
    if ($i%$bol==0) echo "<tr>\n"; // Satirdaki ilk resim

    echo "<form action=goster.php method=post>
    <input type=\"hidden\" name=\"text\" value=\"$strKlasorName$strFileArray[$i]\">";
    echo "<td width=\"$yuzde%\" align=\"center\" valign=\"top\">
    <input border=0 width=120 height=120 src=\"$strKlasorName$strFileArray[$i]\" type=image>
    <a target=_blank href=$strKlasorName$strFileArray[$i]>
    </form>
    </td>\n";
    if ($s%$bol == ($bol - 1)) echo "</tr>\n"; // Satirdaki Son Resim
    $s++;
    }
    }
    //<br><br>
    //<img type=submit src=buyut.gif border=0 type=submit name=gonder value=\"$strKlasorName$strFileArray[$i]\"></a>
    ?>
    <tr><td width="100%" bgcolor="#F1F1F1" colspan="
    <? echo $bol; ?>
    " align="center">
    <b><font size="2" face="Verdana">Sayfa ›››</font></b>
    <?
    $iSayfaAdedi = ceil($strFileCount/$iSayfadaResimAdedi);
    //if ($iSayfa > 1) echo "<a href=listele.php?sayfa=".$iSayfa-1."><<</a> ";
    //else echo "<< ";
    for ($i=1; $i<=$iSayfaAdedi; ++$i) {
    echo "<a href=\"listele.php?sayfa=$i\"><b><font size=2 face=Verdana>$i</a> | </font></b>";
    }
    //if ($iSayfa < $iSayfaAdedi) echo "<a href=\"listele.php?sayfa=".$iSayfa+1."\">>></a> ";
    //else echo ">>";
    ?>
    </td></tr></table>
    </center></div></body></html>




  • arifal simdi basamak basamak yaziyorum...

    -php gd nin yuklu oldugundan emin ol, yuklu degil ise yukle. nasil oldugunu anlattim..
    -kodu yalnız basina bir calistir once ornegin testx.php diye bir dosya olustur:





    <?php

    function resimidataolarakkucultencan($resimcan,$yuzde){
    $cancan = imagecreatefromjpeg($resimcan);
    $boyutlar = getimagesize($resimcan);
    $xcan = round(($boyutlar[0]/100) * $yuzde);
    $ycan = round(($boyutlar[1]/100) * $yuzde);
    $sefilcan= ImageCreateTrueColor($xcan,$ycan);
    ImageCopyResampled($sefilcan, $cancan, 0,0,0,0,$xcan,$ycan,$boyutlar[0],$boyutlar[1]);
    imagejpeg($sefilcan, "yeni_".$resimcan);
    }


    resimidataolarakkucultencan("resim.jpg","50");

    php?>




    sora bu dosyanin bulundugu yere jpg uzantili bir dosya koy adi da "resim.jpg" olsun

    sora testx.php yi calistir...

    -kodun yalnız basina calistigindan emin olduktan sonra. kendi koduna eklersin...


    bilgi:

    gd extension in yuklu olup olmadigini anlamak icin php.ini yi acarsin

    extension=php_gd2.dll

    bu satirin basinda noktali virgul varsa yuklu degil demektir.

    veya gd yuklu degil ve hata mesajlari kapali degil ise testx.php yi calistirdiginda asagidaki gibi hata mesaji alirsin

    Fatal error: Call to undefined function .........



    < Bu mesaj bu kişi tarafından değiştirildi Guest -- 10 Kasım 2004, 15:41:24 >




  • Değerli cezve ilgin için çok saol. Kod a fotoğrafı sayfaya basması için
    echo "<img src='yeni_resim.jpg'>";
    satırını ekledim şuan çok güzel çalışıyor. Fakat farkettim ki kod var olan fotoğrafın belirtilen oranlarda küçülterek bir kopyasını alıyor. Bu işlemi yapmak için illaki fotoğrafın kopyasınımı almak lazım? Bu bir dezavantaj oluşturabilir. Yani server da saklanacak bir asıl ve bir kopya. Ekstra yer demek. Başka bir yolu yokmu?
  • hehe! iyi yonlendiriyorsun... yazasim geliyor...
    o na da gireriz...
  • fonksiyonu asagidaki ile degistir. resmi dogrudan tarayıcıya verecek...


    function resimidataolarakkucultencan($resimcan,$yuzde){
    $cancan = imagecreatefromjpeg($resimcan);
    $boyutlar = getimagesize($resimcan);
    $xcan = round(($boyutlar[0]/100) * $yuzde);
    $ycan = round(($boyutlar[1]/100) * $yuzde);
    $sefilcan= ImageCreateTrueColor($xcan,$ycan);
    ImageCopyResampled($sefilcan, $cancan, 0,0,0,0,$xcan,$ycan,$boyutlar[0],$boyutlar[1]);
    header("Content-type: " . image_type_to_mime_type(IMAGETYPE_JPEG));
    imagejpeg($sefilcan);
    }


    bu sekilde data dan kurtulursun ancak server mesgul olur.
    sen sec artik...
  • üffffffff bu php yi kısa yoldan nasıl öğrenebilirimmmmm
  • baska herhangi bir programlama dili biliyorsan, yani programlama mantigini biliyorsan hemen bir projeye basla yaparken ogrenirsin. dil bilmiyorsan projeye baslamadan once biraz dokuman oku ornekleri incele, ornekler uzerinde oyna sora projeye basla...

    ama sunu unutma ki zaman ve enerji vermeden hicbir sey olmaz...
  • boyutlandırmayı anladık da peki bu resimlere php ile pus verme imkanı yok mu. benim yaptığım sitede kullanıcı sitedeki resimleri güncelleyecek. Mesela düz bir resim koydu. program bunun kenarlarını otomatikmen puslandıracak. Sitede öyle yayınlanacak. Böyle bişey mümkün mü.
  • elbet mümkün. hazır bir fonksiyon yahut script var mı bilmiyorum ancak yazılabilir...
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.