Ankündigung

Einklappen
Keine Ankündigung bisher.

Image-Funktion

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Image-Funktion

    Schönen Abend,
    ich hab ein Problem mit den Bild Funktionen.

    PHP-Code:
            $max_width 0// px
            
    $max_height 0// px
            

            
    header('Content-type: image/png');
            
            foreach(
    $this->images AS $data)
            {
                foreach(
    $data AS $image)
                {
                    
    $max_width $image['file_width'] + $max_width;
                    if(
    $max_height $image['file_height'])
                    {
                        
    $max_height $image['file_height'];
                    }
                }
            }
            
            
    $image_p imagecreatetruecolor($max_width$max_height);

            
            foreach(
    $this->images AS $file => $data)
            {
                foreach(
    $data AS $image)
                {    
                    
    $image imagecreatefrompng($image['file_location']);
                    
    ImageCopy($image_p$image0000$image['file_width'], $image['file_height']);
                    unset(
    $image);
                }
            }    

            
    imagepng($image_p); 
    Der Code generiert aus .png Bildern ein großes Bild. Aber die Funktion ImageCopy bereitet mir Kopfzerbrechen. Das einzige was ich bekomm ist ein schwarzes Bild, aber das Orginal Bild wird nicht kopiert. Hab ich iwo einen Fehler gemacht.

    Grüße
    Daniel


  • #2
    Hab ich iwo einen Fehler gemacht.
    Ist das eine Frage? Eine rhetorische? Ein fortgeschrittene (das sicher nicht)?

    [MOD: verschoben]
    --

    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
    Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


    --

    Kommentar


    • #3
      Was du da in deinen Schleifen vollziehst ist für mich nicht nachvollziehbar. Du erstellst aus mehreren Bildern eines? Du scheinst doch alle Bildausschnitte an die selbe Stelle zu schreiben, oder irre ich mich? Sieht mir alles sehr undurchsichtig aus. Bastel dir ein Standalone-Skript ohne Schleifen und mit möglichst wenig Variablen und mach dich mit den Image-Funktionen richtig vertraut. Danach kannst du weitermachen mit dem Debugging in deinem aktuellen Skript. Dann siehst du ja ob die Funktion nicht funktioniert, weil du sie falsch verwendest, oder ob sie einfach nicht das tut, was du von ihr erwartest.

      Übrigens: Schwarzes Bild ist häufig ein Zeichen dafür, dass "nichts" oder etwas transparentes (falsch) ins Bild geschrieben wurde.
      "Mein Name ist Lohse, ich kaufe hier ein."

      Kommentar


      • #4
        Also mir fällt generell auf - wie Chriz bereits angemerkt hat -, daß Du die "kleinen" Bilder immer wieder nach links oben in das "große" kopierst.

        So ganz prickelnd sieht das aber alles nicht aus...
        Competence-Center -> Enjoy the Informatrix
        PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

        Kommentar


        • #5
          Zitat von Query Beitrag anzeigen
          PHP-Code:
          foreach($this->images AS $file => $data)
          {
              foreach(
          $data AS $image)
              {    
                  
          // Schleifenvariable $image wird hier überschrieben...
                  
          $image imagecreatefrompng($image['file_location']);
                  
          // und ist hier nicht mehr gültig (zumindest nicht als Array!)
                  
          ImageCopy($image_p$image0000$image['file_width'], $image['file_height']); 
              }

          Du überschreibst dir $image...
          Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

          Kommentar


          • #6
            Aber ist das relevant?
            Er kopiert das Bild ja jedesmal in $image_p.
            Zwar immer an die gleiche Stelle, was Chriz ja auch bereits angemerkt hat, aber $image braucht er nur temporär.
            Dürfte nichts machen, daß es bei jedem Schleifendurchlauf überschreiben wird.
            Competence-Center -> Enjoy the Informatrix
            PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

            Kommentar


            • #7
              Zitat von Arne Drews Beitrag anzeigen
              Aber ist das relevant?
              Wenn er hier
              PHP-Code:
              ImageCopy($image_p$image0000$image['file_width'], $image['file_height']); 
              anschliessend noch auf die Maße des Bildes zugreifen will, dann wohl ziemlich.


              Wieder mal ein Fall von „mit vernünftig eingestelltem error_reporting wär' das nicht passiert“.
              Also, @Query: Informiere dich, was das Stichwort bedeutet - und benutze es künftig!

              Kommentar


              • #8
                Vielleicht bin ich ja grad verwirrt, aber bei jedem Schleifendurchlauf in der foreach() wird $image neu gesetzt
                und er greift auf die jeweils aktuellen Werte zurück.

                Was ist daran relevant für das Problem???
                Competence-Center -> Enjoy the Informatrix
                PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                Kommentar


                • #9
                  Zitat von Arne Drews Beitrag anzeigen
                  Vielleicht bin ich ja grad verwirrt, aber bei jedem Schleifendurchlauf in der foreach() wird $image neu gesetzt
                  ... und dann sofort zu Beginn der Schleife mit dem Rückgabewert der Funktion imagecreatefrompng überschrieben. (Der ist vom Typ resource, bzw. ein image identifier.)

                  Dass dann in der folgenden Zeile $image (immer noch) ein Array ist, das Einträge unter den Keys 'file_width' und 'file_height' enthält, erscheint mir nicht besonders wahrscheinlich - dir etwa?

                  Kommentar


                  • #10
                    Öhm... Nö, jetzt wo Du's sagst...
                    Competence-Center -> Enjoy the Informatrix
                    PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                    Kommentar

                    Lädt...
                    X