Schwarzes Bild - was könnte falsch sein

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Schwarzes Bild - was könnte falsch sein

    hallo, so bald ich versuche größere bilder zu verkleinern, werden diese zwar kleiner aber auch glecih schwarz ?

    PHP Code:
    $file_2="upload/$file_neu";
    $info getimagesize($file_2);
    echo 
    "Bildbreite($file_neu): " $info[0]; 

    if(
    $info[0]>800){
        if (
    substr($file_2,-4) == '.jpg' || substr($file_2,-4) == '.JPG' ) {
            
    $size=getimagesize("upload/"."$file_neu"); 
            
    $breite=$size[0]; 
            
    $hoehe=$size[1];
            
    $neueBreite=800
            
    $neueHoehe=intval($hoehe*$neueBreite/$breite);
            
    $altesBild=ImageCreateFromJPEG("upload/"."$file_neu"); 
            
    $neuesBild=ImageCreatetruecolor($neueBreite,$neueHoehe); 

            
    ImageCopyResized($neuesBild,$altesBild,0,0,0,0,      
             
    $neueBreite,$neueHoehe,$breite,$hoehe); 
            
    $dir_neu "upload/".$file_neu ;
                    
            
    imagejpeg($neuesBild,$dir_neu,75);
            
    $altesBild=''$neuesBild='';
                }
            } 
    Last edited by rossixx; 27-06-2006, 17:58.
    fotos :

    http://www.flickr.com/photos/rassloff/collections/

  • #2
    Ist das error_reporting voll aufgedreht ?
    PHP Code:
    error_reporting(E_ALL); 
    Gruss

    tobi
    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

    Comment


    • #3
      PHP Code:

      $error 
      error_reporting(E_ALL);
      echo 
      "<br>fehler = $error
      hab das eingefügt, aber ausser : fehler = 2037

      wird nix ausgegeben.

      was mir aber auffällt ist, das z.B. Bilder mit einer Auflösung von 1500 x 1000 Pixel ohne Probleme verkleinert werden.

      Aber z.B. bei 3072 x 2048 Pixel wie schon beschrieben - zwar verkleinert wird - aber das Bild scharz ist
      fotos :

      http://www.flickr.com/photos/rassloff/collections/

      Comment


      • #4
        PHP Code:
        $error error_reporting(E_ALL);
        echo 
        "<br>fehler = $error
        Wo hast du das denn her, dass man das error Reporting so setzt ? Sicherlich nicht aus dem Manual. Und die Fehlermeldung hat wohl eher
        'fehler = 2047' ausgegeben.
        Das Erroreporting sollte aber so gesetzt werden
        PHP Code:
        error_reporting(E_ALL); 
        Die Funktion gibt den Bitwert der übergebenen Konstante als Dezimalzahl zurück. Und E_ALL == 2047.
        Und zu deinem Code würde ich sagen, dass er doch noch einige doppelte Sachen enthält:
        -Du speicherst den Pfad auf $file_2 und verwendest nachher immer noch den Pfad als String
        -Du liest die Bildgrösse unnötigerweise 2mal aus
        -Wenn du PHP5 hast, dann könntest du deine Bedingung auch noch folgendermassen verkürzen
        PHP Code:
        if(stripos($file_2'.jpg') !== false){
          
        //tu was 
        Gruss

        tobi
        Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

        [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
        Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

        Comment


        • #5
          Amateurfehler

          So nun hab ich doch noch ne fehlermeldung :

          Fatal error: Allowed memory size of 12582912 bytes exhausted

          (tried to allocate 12288 bytes)

          ...

          wie Kann ich den Speicher so bearbeiten, das die Fehlermeldung nicht mehr kommt ???
          fotos :

          http://www.flickr.com/photos/rassloff/collections/

          Comment


          • #6
            Such mal im Forum nach der Fehlermeldung. Bist nicht der erste...

            Comment


            • #7
              Original geschrieben von jahlives
              Die Funktion gibt den Bitwert der übergebenen Konstante als Dezimalzahl zurück. Und E_ALL == 2047.
              Quark. Die Funktion gibt den ALTEN Wert zurück.

              PHP Code:
              <?php
              error_reporting
              (E_ALL);
              echo 
              error_reporting(); // 2047
              $error 0// 0 für keine Fehler anzeigen

              $error error_reporting($error);
              echo 
              $test// kein Fehler (0)
              $error error_reporting($error);
              echo 
              $test// Fehler (E_ALL)
              So kann man sich zum Beispiel einen netten Switch schreiben, wenn zwischen dem eigenen eigentlichen Skript irgendein third-party-Skript includiert wird, welches nur mit 0 wirklich ausführbar ist...

              Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

              bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
              Wie man Fragen richtig stellt

              Comment

              Working...
              X