Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Kao kvalitetno uraditi resize fotografje u PHP?

[es] :: PHP :: Kao kvalitetno uraditi resize fotografje u PHP?

[ Pregleda: 2688 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Predrag Supurovic
Pedja YT9TP
Užice

Član broj: 157129
Poruke: 6279

Sajt: pedja.supurovic.net


+1571 Profil

icon Kao kvalitetno uraditi resize fotografje u PHP?10.11.2011. u 20:47 - pre 151 meseci
Napravio sam opciju za promenu dimenyije fotografije nakon uploada da bi bila prilagodjena velicini kojom se prikayuje na strani. Napravio sam sve sto mi treba po pitanju racuna dimenzija i resklarianja.

Medjutim, fotografije ispadnju prilicno lose i nekvalitetne. Evo primer kako izgleda na ovoj strani: http://www.fkslobodapointsevojno.rs/vesti/v112 Primetite gomilu belih tackica, kryave linije i slicna izoblicenja.

U obradi fotografije koristim: imagecreatefromjpeg(), imagecreatetruecolor(), imagecopyresized() i ImageJPEG().

Postoji li neki drugi nacin promene dimenzije fotografije koji daje kvalitetniji rezultat od ovoga?


 
Odgovor na temu

kelja

Član broj: 70429
Poruke: 1416
*.dynamic.isp.telekom.rs.



+35 Profil

icon Re: Kao kvalitetno uraditi resize fotografje u PHP?10.11.2011. u 22:32 - pre 151 meseci
Hm, ovo je bas cudno...
Jesi ubacivao ovaj treci parametar imagejpeg() funkcije, ili je default?
 
Odgovor na temu

pajaja
Beograd

Administrator
Član broj: 41598
Poruke: 3430
*.dynamic.sbb.rs.

Jabber: pajaja@elitesecurity.org
ICQ: 253317269


+144 Profil

icon Re: Kao kvalitetno uraditi resize fotografje u PHP?11.11.2011. u 02:14 - pre 151 meseci
Ako ne zelis da koristis nesto posebno za to, pokusaj da iskoristis imagecopyresampled() umesto imagecopyresized(), posto ova prva radi interpolaciju slike pri smanjivanju. Ne znam koliko kvalitetna fotka ti treba posto taj algo za resample koji koristi daje malo blurovane fotke.
xxx
mali mali mali kamičak...nebo plave boje.
In Memoriam: Madzone Zeka(15.09.2005-16.09.2005)
 
Odgovor na temu

Predrag Supurovic
Pedja YT9TP
Užice

Član broj: 157129
Poruke: 6279

Sajt: pedja.supurovic.net


+1571 Profil

icon Re: Kao kvalitetno uraditi resize fotografje u PHP?11.11.2011. u 05:51 - pre 151 meseci
Probao sam sve sto sam iskopao. PrRoblem je sto reskaliranje radi cudno, kao da funkcija prosto uzme svaki n-ti piksel, pa sve tanke linije, narocito kose ili zaobljenje postaju krzave, svugde se pojavljuju beli pikseli po ivicama povrsina i sve tako nesto.

Uspeo sam da nesto popravim korsicenjem imagefilter() sa blur efektom, ali to dobro radi samo ako se slika mnogo smanjuje. Probacu danas da uradim skaliranje u nekoliko koraka a ne odjednom na potrebnu rezoluciju da vidim da li ce tad blur bolje funkcionise.
 
Odgovor na temu

Bojan Kopanja
Bojan Kopanja
Senior Web Developer, ZeusSoftware
Stara Pazova

Član broj: 6155
Poruke: 507
95.180.24.*

ICQ: 346697685
Sajt: www.zeussoftware.rs


Profil

icon Re: Kao kvalitetno uraditi resize fotografje u PHP?11.11.2011. u 07:17 - pre 151 meseci
Ovako nesto je vec bilo na forumu, ja sam samo malo doradio i mogu ti reci da radi skroz super :)... Evo ga kod funkcije za resize:

Code:

  public function paddedImage ($src_filename, $dest_filename, $_width, $_height, $bg_R, $bg_G, $bg_B, $quality) {
    
    if(!is_dir($src_filename))
    {    
      $ext = strtolower(pathinfo($src_filename, PATHINFO_EXTENSION));
      
      switch(strtolower($ext))
      {
        case "jpg":
        case "jpeg":
          $src = imagecreatefromjpeg($src_filename);
          break;
        case "png":
          $src = imagecreatefrompng($src_filename);
          break;
        case "gif":
          $src = imagecreatefromgif($src_filename);
          break;
      }
      
      $width = @imagesx($src);
      $height = @imagesy($src);
      
      if($width != 0 && $height != 0)
      {
        $ratio_w = $_width / $width;
        $ratio_h = $_height / $height;

        $ratio = ($ratio_w < $ratio_h) ? $ratio_w : $ratio_h;

        $new_width = $width * $ratio;
        $new_height = $height * $ratio;

        $padd_x = ($_width - $new_width) / 2;
        $padd_y = ($_height - $new_height) / 2;

        $dest = imagecreatetruecolor($_width, $_height);
        $background_color = imagecolorallocate($dest, $bg_R, $bg_G, $bg_B);
        imagefilledrectangle($dest, 0, 0, $_width, $_height, $background_color);

        imagecopyresampled($dest, $src, $padd_x, $padd_y, 0, 0, $new_width, $new_height, $width, $height);

        if ($dest_filename) {
            imagejpeg($dest, $dest_filename, $quality);
        } else {
            header('Content-Type: image/jpeg');
            imagejpeg($dest, null, $quality);
        }

        imagedestroy($dest);
        imagedestroy($src);
      }
    }
  }


Funkcija se poziva ovako:

Code:
paddedImage($src_filename, $dest_filename, 313, 235, 255, 255, 255, 100);


Prvi i drugi parametri su jasni, treci i cetvrti su dimenzije resized slike, ovo 255, 255, 255 je pozadinska boja, tj. bela u ovom slucaju i 100 je naravno kvalitet jpg fajla :).

Nadam se da sam pomogao bar malo ;).
 
Odgovor na temu

ivan.a
PHP developer

Član broj: 83976
Poruke: 403
*.dynamic.isp.telekom.rs.



+44 Profil

icon Re: Kao kvalitetno uraditi resize fotografje u PHP?11.11.2011. u 07:55 - pre 151 meseci
Citat:
Predrag Supurovic: U obradi fotografije koristim: imagecreatefromjpeg(), imagecreatetruecolor(), imagecopyresized() i ImageJPEG().

Koristi imagecopyresampled() umesto imagecopyresized()
Koji ti je treći parametar kod ImageJPEG()?

Da li si probao da generišeš slike sa npr. timthumb ... čisto da vidiš rezultate?
I hope I didn't brain my damage - Homer
if (wife.position == kitchen) {return sandwich};
 
Odgovor na temu

Predrag Supurovic
Pedja YT9TP
Užice

Član broj: 157129
Poruke: 6279

Sajt: pedja.supurovic.net


+1571 Profil

icon Re: Kao kvalitetno uraditi resize fotografje u PHP?11.11.2011. u 08:39 - pre 151 meseci
Prvobitno i jesam koristio ali je rezultat bio losiji pa sam ostavio imagecopyresized() iako je logicnije da ova prva radi bolje. Probacu i to jos jednom, mozda sam se nesto zeznuo prosli put kada sam je testirao.
 
Odgovor na temu

vatri
Banja Luka, RS

Član broj: 68697
Poruke: 1006
*.static.stelkom.net.



+18 Profil

icon Re: Kao kvalitetno uraditi resize fotografje u PHP?11.11.2011. u 12:57 - pre 151 meseci
Jesi mozda probao sa imagepng() ?
 
Odgovor na temu

Predrag Supurovic
Pedja YT9TP
Užice

Član broj: 157129
Poruke: 6279

Sajt: pedja.supurovic.net


+1571 Profil

icon Re: Kao kvalitetno uraditi resize fotografje u PHP?11.11.2011. u 14:56 - pre 151 meseci
Ma kao i uvek, bude neka budalastina. Mislio sam da sam koristio imagecopyresampled() a u kodu mi ostalo imagecopyresized(). CIm sam to sredio sad fotografije izgledaju ok.
 
Odgovor na temu

ivan.a
PHP developer

Član broj: 83976
Poruke: 403
*.dynamic.isp.telekom.rs.



+44 Profil

icon Re: Kao kvalitetno uraditi resize fotografje u PHP?12.11.2011. u 01:24 - pre 151 meseci
Zato sam prvo napisao da koristiš imagecopyresampled() jer ta funkcija uklanja noise (koji se video kod tebe na slici), ali zato zahteva više CPU resursa.
I hope I didn't brain my damage - Homer
if (wife.position == kitchen) {return sandwich};
 
Odgovor na temu

zmil
Zoran Milicevic
Krupanj

Član broj: 27816
Poruke: 76
109.72.63.*

Sajt: www.mz.rs


+2 Profil

icon Re: Kao kvalitetno uraditi resize fotografje u PHP?24.11.2011. u 10:49 - pre 151 meseci
http://www.imagemagick.org/script/index.php
Uklucis exec funkciju i dobijes kvalitet a ne gdi

 
Odgovor na temu

[es] :: PHP :: Kao kvalitetno uraditi resize fotografje u PHP?

[ Pregleda: 2688 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.