tutorials.de Buch-Aktion 05/2012
Seite 1 von 2 12 LetzteLetzte
ERLEDIGT
NEIN
ANTWORTEN
24
ZUGRIFFE
1011
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Experience1986 Experience1986 ist offline Mitglied Brokat
    Registriert seit
    Feb 2002
    Ort
    Völklingen
    Beiträge
    280
    Hi,

    ich hab mir gerade eine Funktion für Thumbnails von JPG, GIF und PNG Dateien gebastelt, nachdem schon eine Klasse den im Titel beschriebenen Effekt hervorief. Sobald ich in einem Script auf dem betreffenden Server die Funktion imagecreatefromjpeg() (bzw: imagecreatefromgif(), imagecreatefrompng()); aufrufe, bekommt der Browser die Rückmeldung: "Seite nicht gefunden".

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    
      function CreateThumbnail($source, $target)
      {
     
        global $thumb_height;
     
        $ext = substr($source, -3);
        $ext = strtolower($ext);    return false;
        if (($ext == 'jpg') or ($ext == 'jpeg'))
           {
             $f = @imagecreatefromjpeg($source);
           }
          elseif($ext == 'gif')
           {
             $f = @imagecreatefromgif($source);
           }
          elseif($ext == 'png')
           {
             $f = @imagecreatefrompng($source);
           }
          else
           {
             return false;
           }
     
            $size=getimagesize($source);
     
            $srcH=$size[1];
            $srcW=$size[0];
     
            $percentW=($thumb_height/$srcH);
     
            $newH = $thumb_height;
            $newW = round($srcW*$percentW);
     
            $newImage = imagecreatetruecolor($newW, $newH);
            imagecopyresampled($newImage,$f,0,0,0,0,$newW,$newH,$srcW,$srcH);
            imagejpeg($newImage, $target, "70");
            return true;
     
      }

    Bei mir auf dem lokalen Server läuft exakt der gleiche Code reibungslos. Ich vermute daher das dem Server etwas fehlt... Ich müsste also wissen was, kenne mich da nicht so aus.

    PHPINFO: http://www.onceforgotten.de/modules/image_gallery/x.php

    Dankbar für jeden sachdienlichen Hinweis
     
    Sicher ist nur das nichts Sicher ist.

  2. #2
    Experience1986 Experience1986 ist offline Mitglied Brokat
    Registriert seit
    Feb 2002
    Ort
    Völklingen
    Beiträge
    280
    So, nach dem ich die @'s vor den imagecreatefrom***() entfernt habe, wird die Seite angezeigt, aber die Thumbnails werden nicht erstellt...

    Wenn mir also dennoch jemand weiterhelfen könnte...
     
    Sicher ist nur das nichts Sicher ist.

  3. #3
    Registriert seit
    Dec 2002
    Ort
    Trier
    Beiträge
    17.502
    Blog-Einträge
    10
    Prüfe mal mit den PHP-eigenen Funktionen, um welches Grafikformat es sich handelt (etwa die getimagesize()-Funktion). Sich alleine auf die Dateiendung zu verlassen, ist etwas naiv.
     
    Markus Wulftange

  4. #4
    Experience1986 Experience1986 ist offline Mitglied Brokat
    Registriert seit
    Feb 2002
    Ort
    Völklingen
    Beiträge
    280
    Die Dateien mit JPEG-Endungen sind bei mir garantiert auch JPEG-Grafiken!
    Wie gesagt, lokal läuft es super.

    Aber Danke für den Hinweis.
     
    Sicher ist nur das nichts Sicher ist.

  5. #5
    Avatar von Flex
    Flex Flex ist offline (aka Felix Jacobi)
    tutorials.de Moderator
    Registriert seit
    Nov 2001
    Ort
    Wuppertal
    Beiträge
    5.295
    Blog-Einträge
    65
    Bitte das nächste mal die [php] Tags statt [code] benutzen...

    Ansonsten:
    PHP-Code:
    $ext substr($source, -3);
        
    $ext strtolower($ext);    return false;
        if ((
    $ext == 'jpg') or ($ext == 'jpeg'))
           {
             
    $f = @imagecreatefromjpeg($source);
           } 
    Dir ist natürlich schon klar, dass jpeg nicht funktionieren kann wenn du nur die letzten 3 Buchstaben des Dateinamens liest?

    mit getimagesize kannst du den Typen des Bildes direkt bestimmen.

    PHP-Code:
    <?php
    error_reporting
    (E_ALL);
      function 
    CreateThumbnail($source$target)
      {

        
    $thumb_height "100";

        
    $size=getimagesize($source);
        
        
    $ext $size[2];
        
        switch(
    $ext) {
            case 
    "1":
                
    $f imagecreatefromgif($source);
            break;
            case 
    "2":
                
    $f imagecreatefromjpeg($source);
            break;
            case 
    "3":
                
    $f imagecreatefrompng($source);
            break;
            default:
                return 
    false;
        }
            
        
    $srcH=$size[1];
        
    $srcW=$size[0];

        
    $percentW $thumb_height/$srcH;

        
    $newH $thumb_height;
        
    $newW round($srcW*$percentW);
            
        
    $newImage imagecreatetruecolor($newW$newH);
        
    imagecopyresampled($newImage,$f,0,0,0,0,$newW,$newH,$srcW,$srcH);
        
    imagejpeg($newImage$target"70");
        return 
    true;

    }
    ?>
    So funktioniert es bei mir.
    Bei mir lag der Fehler darin, dass $thumb_height nicht definiert war und deshalb nichts passierte... jetzt klappt alles wunderbar.

    Da schreibt man mal etwas mehr und wird direkt überrundet
     
    KIDS Kinderbetreuungsdienst
    Xing

    "When you play the game of thrones, you win or you die. There is no middle ground."
    by Cersei Lannister in "A Game Of Thrones"

  6. #6
    Avatar von Dr Dau
    Dr Dau Dr Dau ist offline ich wisch hier durch
    Registriert seit
    Feb 2005
    Ort
    hinterm Mond gleich Links
    Beiträge
    6.160
    Blog-Einträge
    4
    Hallo!

    Du solltest den Tip von Gumbo aber schon beherzigen.
    So kann ein *.jpg z.b. auch ein image/pjpeg sein..... gibt noch mehr Varianten.

    Gruss Dr Dau
     
    Schri-Schra-Schrödi *g*
    mehrspaltiges/zeiliges Seitenlayout mit DIV's und CSS
    Dinge, die mit Tabellen besser klappen als mit CSS
    Ausgabe von Datum/Zeit unabhängig von der Server Zeitzone [php]
    Meine Links zum Thema Linux (Last update: 29.10.2011)
    Kein Busen ist so flach wie das Niveau dieser Party!
    ----
    Alte Weisheit: wer uns in den Arsch kriecht wird beschissen!
    ----
    Ich habe 3 Kinder und kein Geld!
    Warum kann ich nicht keine Kinder haben und 3 Geld?! (Homer Jay Simpson)

  7. #7
    Experience1986 Experience1986 ist offline Mitglied Brokat
    Registriert seit
    Feb 2002
    Ort
    Völklingen
    Beiträge
    280
    So, ich hab den Code von [FLEX] übernommen, und es geht noch immer nicht...

    http://www.onceforgotten.de/modules/...lery/index.php
    Dort läuft das Script, die betreffende Funktion wird ausgelöst, wenn man auf "Test-Gallerie" klickt.

    Nun wird die Seite wieder nicht angezeigt... Brauch man denn für diese Bild-Funktionen speziele Libs für PHP? Wenn ja wo kann ich in der PHPINFO() nachlesen, ob die implementiert sind?
     
    Sicher ist nur das nichts Sicher ist.

  8. #8
    Avatar von Flex
    Flex Flex ist offline (aka Felix Jacobi)
    tutorials.de Moderator
    Registriert seit
    Nov 2001
    Ort
    Wuppertal
    Beiträge
    5.295
    Blog-Einträge
    65
    Die interessanten Einträge sind unter GD zu finden, der GD Library.
    Dort sind aber alle vorhanden, so dass die Probleme nicht dort liegen können.
    Hast du error_reporting() mal auf E_ALL gestellt?
    Und gib mal testweise $thumb_height aus, ob der Wert auch wirklich gesetzt ist.
     
    KIDS Kinderbetreuungsdienst
    Xing

    "When you play the game of thrones, you win or you die. There is no middle ground."
    by Cersei Lannister in "A Game Of Thrones"

  9. #9
    Registriert seit
    Dec 2002
    Ort
    Trier
    Beiträge
    17.502
    Blog-Einträge
    10
    Den Fehlermeldungen nach zu urteilen, solltest du Zeichenketten explizit als solche auszeichnen. Aus einem $array[index] sollte demnach $array['index'] oder $array["index"] werden.
     
    Markus Wulftange

  10. #10
    Avatar von Flex
    Flex Flex ist offline (aka Felix Jacobi)
    tutorials.de Moderator
    Registriert seit
    Nov 2001
    Ort
    Wuppertal
    Beiträge
    5.295
    Blog-Einträge
    65
    Außerdem solltest du beachten, dass register_globals auf OFF ist und $PHP_SELF somit nicht direkt ansprechbar ist, sondern über $_SERVER['PHP_SELF'] anzusprechen ist.
    Siehe dazu auch: Vordefinierte Variablen
     
    KIDS Kinderbetreuungsdienst
    Xing

    "When you play the game of thrones, you win or you die. There is no middle ground."
    by Cersei Lannister in "A Game Of Thrones"

  11. #11
    Experience1986 Experience1986 ist offline Mitglied Brokat
    Registriert seit
    Feb 2002
    Ort
    Völklingen
    Beiträge
    280
    Vielen Dank für alles...
    Hab die Funktion, editiert von [FLIK] nun im Einsatz...

    Das Problem war nicht der Quellcode, sondern die Bilder... Warum weiß ich nicht, da teste ich nun mal weiter...

    Denn mit anderen Bildern gehts wunderbar.

    Danke schon mal.
     
    Sicher ist nur das nichts Sicher ist.

  12. #12
    Experience1986 Experience1986 ist offline Mitglied Brokat
    Registriert seit
    Feb 2002
    Ort
    Völklingen
    Beiträge
    280
    Kann es daran liegen das die Bilder Windows-Dateiinformationen wie zum Beispiel Kameramodel, Gerätehersteller, Farbdasrstellung.... beinhalten?
     
    Sicher ist nur das nichts Sicher ist.

  13. #13
    Avatar von Flex
    Flex Flex ist offline (aka Felix Jacobi)
    tutorials.de Moderator
    Registriert seit
    Nov 2001
    Ort
    Wuppertal
    Beiträge
    5.295
    Blog-Einträge
    65
    Könntest du ein solches Bild mal zur Verfügung stellen, damit man damit rumtesten kann?
     
    KIDS Kinderbetreuungsdienst
    Xing

    "When you play the game of thrones, you win or you die. There is no middle ground."
    by Cersei Lannister in "A Game Of Thrones"

  14. #14
    Experience1986 Experience1986 ist offline Mitglied Brokat
    Registriert seit
    Feb 2002
    Ort
    Völklingen
    Beiträge
    280
    Ich habd as Problem gelöst... Es waren doch nicht die Dateiinformationen... Die Auflösung der Bilder betrag etwa 2200x1700... Das scheint zu groß für die PHP-FUnktionen...

    Ich hab nun eines der Bilder auf 2000x1500 gesetzt und schon gehts...
    Ein "problematisches" Bild ist:
    http://www.onceforgotten.de/uploads/...6/CIMG1914.JPG
    (Also es ist noch im Original-Zustand)
     
    Sicher ist nur das nichts Sicher ist.

  15. #15
    Avatar von Flex
    Flex Flex ist offline (aka Felix Jacobi)
    tutorials.de Moderator
    Registriert seit
    Nov 2001
    Ort
    Wuppertal
    Beiträge
    5.295
    Blog-Einträge
    65
    Also bei mir funktioniert das auch mit diesen großen Bildern, lokal als auch online.
    Hier zu sehen:
    http://zeibagieks.de/dev/test.php
     
    KIDS Kinderbetreuungsdienst
    Xing

    "When you play the game of thrones, you win or you die. There is no middle ground."
    by Cersei Lannister in "A Game Of Thrones"

Ähnliche Themen

  1. Von Festplatte kann nicht mehr gelesen werden
    Von Iherp im Forum Microsoft Windows
    Antworten: 0
    Letzter Beitrag: 21.03.10, 15:18
  2. HP nw8240 kann nicht mehr eingeschaltet werden
    Von Dommas im Forum Hardware
    Antworten: 1
    Letzter Beitrag: 08.12.06, 00:27
  3. "Drives:/" kann nicht aufgerufen werden
    Von D@nger im Forum Linux & Unix
    Antworten: 6
    Letzter Beitrag: 21.03.06, 02:04
  4. Antworten: 2
    Letzter Beitrag: 28.06.05, 14:28
  5. Seite kann nicht aufgerufen werden
    Von uni im Forum HTML & XHTML
    Antworten: 7
    Letzter Beitrag: 21.01.03, 21:41