Şimdi Ara

PHP'de Fotoğraf Üzerinde İşlemler

Bu Konudaki Kullanıcılar:
4 Misafir - 4 Masaüstü
5 sn
20
Cevap
0
Favori
1.597
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?
  • quote:

    Orijinalden alıntı: arifal

    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 >
  • quote:

    Orijinalden alıntı: Guest

    evet dogru, ilk mesajda durumu zaten yazmissin ama demek istedigini tam anlayamamisim..
    ona da gireriz, donecem sana yani...

    Alıntıları Göster
    gd library ishini gorur.

    bu sayfada hersey var:
    http://de3.php.net/gd




  • quote:

    Orijinalden alıntı: dig

    gd library ishini gorur.

    bu sayfada hersey var:
    http://de3.php.net/gd

    Alıntıları Göster
    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...




  • quote:

    Orijinalden alıntı: Guest

    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...

    Alıntıları Göster
    tabi bu kodun calismasi icin php "gd" extension'unun yuklenmis olmasi lazim.




  • Yapay Zeka’dan İlgili Konular
    Daha Fazla Göster
  • quote:

    Orijinalden alıntı: dig

    tabi bu kodun calismasi icin php "gd" extension'unun yuklenmis olmasi lazim.

    Alıntıları Göster
    ondan once de php nin yuklu olmasi lazim...
  • quote:

    Orijinalden alıntı: dig

    tabi bu kodun calismasi icin php "gd" extension'unun yuklenmis olmasi lazim.

    Alıntıları Göster
    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
  • quote:

    Orijinalden alıntı: arifal

    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

    Alıntıları Göster
    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 >




  • quote:

    Orijinalden alıntı: Guest

    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...

    Alıntıları Göster
    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 >
  • quote:

    Orijinalden alıntı: Guest

    kodu yazdigin sayfayi aynen kopyalar misin? bakalim....

    Alıntıları Göster
    Ç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>




  • quote:

    Orijinalden alıntı: arifal

    Ç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>

    Alıntıları Göster
    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 >




  • quote:

    Orijinalden alıntı: Guest

    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 .........

    Alıntıları Göster
    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?




  • quote:

    Orijinalden alıntı: arifal

    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?

    Alıntıları Göster
    hehe! iyi yonlendiriyorsun... yazasim geliyor...
    o na da gireriz...




  • quote:

    Orijinalden alıntı: Guest

    hehe! iyi yonlendiriyorsun... yazasim geliyor...
    o na da gireriz...

    Alıntıları Göster
    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...




  • quote:

    Orijinalden alıntı: Guest

    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...

    Alıntıları Göster
    üffffffff bu php yi kısa yoldan nasıl öğrenebilirimmmmm




  • quote:

    Orijinalden alıntı: kamberix

    üffffffff bu php yi kısa yoldan nasıl öğrenebilirimmmmm

    Alıntıları Göster
    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...
  • quote:

    Orijinalden alıntı: Guest

    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...

    Alıntıları Göster
    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ü.




  • quote:

    Orijinalden alıntı: foyes

    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ü.

    Alıntıları Göster
    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.