Autor Zpráva
Medvídek
Profil
Mam PHP+AJAX uplaod skript, kde si nactu obrazek a rovnou ho zmensim, bohuzel funguje pouze JPEG a GIF, PNG mi nějak zlobí :(

<?php
session_start();
include "funkce.php";
$id=$_SESSION["id"];
   $result = 0;
   $cas=StrFTime("%H-%M-%S", Time());
   $datum=StrFTime("%Y-%m-%d");
   $jmeno=$_FILES['myfile']['name'];
   $nazev=$datum."-".$cas."-".$jmeno;
   $target_path = "avatari/".$nazev;

   if(@move_uploaded_file($_FILES['myfile']['tmp_name'], $target_path)) 
   {
      $result = 1;
      $vysledek=mysql_query("UPDATE uzivatele SET avatar='$nazev' WHERE id='$id' ");
      $obrazek = GetImageSize($target_path);
      $sirka = $obrazek[0];
      $vyska = $obrazek[1];
      $typ = $obrazek[2];
      if ($sirka > 100 || $vyska > 00) 
      {
      $pomer = max($sirka,$vyska)/100;
      $thumb_sirka = round($sirka/$pomer);
      $thumb_vyska = round($vyska/$pomer);      
      }
      $thumb = imagecreatetruecolor($thumb_sirka, $thumb_vyska);
      if($typ==2)
      {
        $source = imagecreatefromjpeg($target_path);
        imageinterlace($thumb, 1);
        
        // ZMENIM VELIKSOT
        imagecopyresized($thumb, $source, 0, 0, 0, 0, $thumb_sirka, $thumb_vyska,
        $sirka, $vyska);
  
        // VÝSTUP
        imagejpeg($thumb, $target_path, 90);
      }
      if($typ==1)
      {
        $source = imagecreatefromgif($target_path);
        imageinterlace($thumb, 1);
        
        // ZMENIM VELIKSOT
        imagecopyresized($thumb, $source, 0, 0, 0, 0, $thumb_sirka, $thumb_vyska,
        $sirka, $vyska);
  
        // VÝSTUP
        imagegif($thumb, $target_path, 90);
      }
      if($typ==3)
      {
        $source = imagecreatefrompng($target_path);
        imageinterlace($thumb, 1);
        
        // ZMENIM VELIKSOT
        imagecopyresized($thumb, $source, 0, 0, 0, 0, $thumb_sirka, $thumb_vyska,
        $sirka, $vyska);
  
        // VÝSTUP
        imagepng($thumb, $target_path, 90);
      }
   }
   
   
   sleep(1);
?>

<script language="javascript" type="text/javascript">window.top.window.stopUpload(<?php echo $result; ?>);</script>   


Prosim, koukněte se někdo na to, jestli nevidíte nějakou chybu :( Když mi funguje GIF i JPEGecko, tak nevim proc ne PNGcko :(
Matty
Profil
Medvídek
Nejsem si jist, ale určitě se u funkce imagepng() nastavuje kvalita?
Edit: Aha, nastavuje. Tak nic...
Warden
Profil
image gif ti funguje? Ten myslim nemá quality parametr...png ho sice má, ale až od php 5.1.2, tak si zjisti, na jakém php vlastně běžíš...jen tak pro zajímavost, bych ten třetí parametr z imagepng smaznul :)
Medvídek
Profil
OK vyzkouším :) Děkuji za TIP

EDIT: Mockrát děkuji, problém vyřešen, opravdu to bylo tou kvalitou :)

Teď sem ale přišel na další problém :( Pokud nahraju GIF s transparentnim pozadim, tak se prevede na cerny :(

Nevíte, zdali to lze vyřešit (buďto na transparentní, nebo alespoň bílé)

A dále, zda-li jdou zmenšit i pohyblivé GIFy .. ale to asi pochybuju :(

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0