Avatar billede dj-sejler Praktikant
10. januar 2006 - 11:03 Der er 19 kommentarer og
1 løsning

billede funktion virker ikke

Hej...

Jeg har for efterhånden nogen tid siden lavet nedenstående funktion til at lave thumbnails med, og den har også virket, men den tid er ovre...

Jeg troede først det var pga at det tog for langtid, men der bliver kaldt andre funktioner efter denne som fint bliver kørt.
Er der nogen der kan hjælpe?

   
    function create_thumb($orginal_file, $thumb_file){
      // Get new sizes
      list($width, $height) = getimagesize($orginal_file);
      $percent = 113/$height;
      $newwidth = $width * $percent;
      $newheight = $height * $percent;
     
      // Load imagecreatetruecolor
      // $thumb = imagecreate($newwidth, $newheight);
      // $thumb = imagecreatetruecolor($newwidth, $newheight);
      $thumb = imagecreate($newwidth, $newheight);
      $source = imagecreatefromjpeg($orginal_file);
     
      // Resize
      imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
     
      imagejpeg($thumb, $thumb_file , '100');
    }
Avatar billede dj-sejler Praktikant
10. januar 2006 - 11:04 #1
hov...  $thumb = imagecreatetruecolor($newwidth, $newheight);


    function create_thumb($orginal_file, $thumb_file){
      // Get new sizes
      list($width, $height) = getimagesize($orginal_file);
      $percent = 113/$height;
      $newwidth = $width * $percent;
      $newheight = $height * $percent;
   
      // Load imagecreatetruecolor
      // $thumb = imagecreate($newwidth, $newheight);
      $thumb = imagecreatetruecolor($newwidth, $newheight);
      $source = imagecreatefromjpeg($orginal_file);
   
      // Resize
      imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
   
      imagejpeg($thumb, $thumb_file , '100');
    }
Avatar billede delphinarious Nybegynder
10. januar 2006 - 12:52 #2
Jeg ser ikke umiddelbart nogen fejl, nej.. Men check at du har den korrekte værdi i $width og $height...

Den gemmer slet ingen fil, eller hvad?
Avatar billede dj-sejler Praktikant
10. januar 2006 - 13:24 #3
nej den gemmer intet... ikke denne funktion :(

og tilsvarende funktioner i samme dokument virker findt

eks:

    function opload_img($orginal_file, $new_file){
      // Get new sizes
      list($width, $height) = getimagesize($orginal_file);
      if (($width>600 && $height>800) || ($width>800 && $height>600)){
    if ($width<$height){
      $newwidth = 600;
      $newheight = 800;
    } else {
      $newwidth = 800;
      $newheight = 600;
    }
   
    // Load
    // $thumb = imagecreate($newwidth, $newheight);
    $thumb = imagecreatetruecolor($newwidth, $newheight);
    $source = imagecreatefromjpeg($orginal_file);
   
    // Resize
    imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
   
    imagejpeg($thumb, $new_file, '100' );
      } else {
    $newwidth = $width;
    $newheight = $height;
      }
    }
Avatar billede delphinarious Nybegynder
10. januar 2006 - 14:09 #4
Ok. Kalder du funktionerne med de rette argumenter (flags)?
Har du kørt line-by-line-checking og sikret dig at width og height-variablerne får de rette værdier?
Avatar billede dj-sejler Praktikant
10. januar 2006 - 14:14 #5
nu er jeg ikke helt sikker på hvad du mener...
men den får i hvert fald de rigtige bredde/højde

men jeg er ikke sikker på hvordan jeg kan kontrollere de andre linie
Avatar billede delphinarious Nybegynder
10. januar 2006 - 14:29 #6
Bare echo dem ud eller noget...
Avatar billede dj-sejler Praktikant
10. januar 2006 - 14:49 #7
Jeg får følgende:


./images/gallery_58_images_509.jpg
./thumb/gallery_58_images_509_thumb.jpg
150.66666666667
113
Resource id #14
Resource id #16

filerne og størrelserne er rigtige nok...


    function create_thumb($orginal_file, $thumb_file){
      // Get new sizes
      echo "$orginal_file<br />$thumb_file<br />";

      list($width, $height) = getimagesize($orginal_file);
      $percent = 113/$height;
      $newwidth = $width * $percent;
      $newheight = $height * $percent;

      echo "$newwidth<br />$newheight<br />";
     
      // Load imagecreatetruecolor
      // $thumb = imagecreate($newwidth, $newheight);
      // $thumb = imagecreatetruecolor($newwidth, $newheight);
      $thumb = imagecreate($newwidth, $newheight);
      $source = imagecreatefromjpeg($orginal_file);
     
      echo "$thumb<br />$source<br />";

      // Resize
      imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
     
      imagejpeg($thumb, $thumb_file , '100');
    }
Avatar billede rednex Nybegynder
10. januar 2006 - 15:01 #8
Hvis safe_mode er enablet på dit webhotel, så skal du lige smide "touch($thumb_file);" ind foran imagejpeg(). Og så kan du lige checke ved samme lejlighed at mappen du gemmer i har de rigtige rettigheder (0777).
Avatar billede delphinarious Nybegynder
10. januar 2006 - 15:02 #9
Hmm... Umiddelbart tror jeg ikke, det er selve billed-funktionerne den er gal med... Hvis det var, ville den stadig lave filen. Men det er mystisk at du ikke får nogen fejl-meddelelse... Er det på din egen server eller webhotel? Og hvis det er webhotel, så hos hvem? Har du sikret dig skriverettigheder i thumb-mappen?
Avatar billede delphinarious Nybegynder
10. januar 2006 - 15:04 #10
rednex >> touch har jeg da aldrig haft brug for, selvom jeg kører med safemode on...
Avatar billede dj-sejler Praktikant
10. januar 2006 - 15:06 #11
Jamen jeg kan da lige sige at mappen har hele tiden haft de rigtige rettigheder...

og den med touch virker!
Avatar billede delphinarious Nybegynder
10. januar 2006 - 15:15 #12
Ok. Så ved man da det! :-)
Avatar billede dj-sejler Praktikant
10. januar 2006 - 15:18 #13
ja nu virker det hele...
men jeg skulle så også lige ændre
imagejpeg($thumb, $thumb_file , '100');
til
imagejpeg($thumb, $thumb_file , 100);

Men tak for hjælpen :D
--> rednex
og forsøget
--> delphinarious
Avatar billede rednex Nybegynder
10. januar 2006 - 15:18 #14
delphinarious> Det er meget muligt at du aldrig har behøvet det, men det er altså nødvendigt efter PHP 4.4.1 (svjh) når man kører under safe_mode.

Bug'en skulle være fixet den 25. november 2005, så det er ikke nødvendigt at touch()'e i PHP versioner nyere end det.
Avatar billede rednex Nybegynder
10. januar 2006 - 15:19 #15
Hov, den er skam fiket den 3. november :oP
Avatar billede dj-sejler Praktikant
10. januar 2006 - 15:22 #16
mit hotel kører 4.4.1

Build Date     Nov 4 2005 20:11:50

siger du så at det IKKE burde være nødvendigt?
Avatar billede delphinarious Nybegynder
10. januar 2006 - 15:24 #17
rednex >> Hmmm ok! Jeg må vist lige have checket op på phpinfo() igen. :-P Tak for info anyways.. :-)

dj-sejler >> Yir yir, bare gnid salt i såret! :-P
Avatar billede dj-sejler Praktikant
10. januar 2006 - 15:26 #18
Det var ikke sådan ment!!!!
:-D
Avatar billede rednex Nybegynder
10. januar 2006 - 15:28 #19
dj-sejler> PHP 4.4.1 er udgivet d. 31. oktober 2005. Hvornår dit wehotel har compilet den er sådan set ligemeget. Det vil altså først være fikset i ver. 4.4.2.
Avatar billede dj-sejler Praktikant
10. januar 2006 - 15:30 #20
okay... takker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester