Ankündigung

Einklappen
Keine Ankündigung bisher.

imagecopy() Abgerundeter Rahmen auf Bild mit Transparenz

Einklappen

Neue Werbung 2019

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

  • imagecopy() Abgerundeter Rahmen auf Bild mit Transparenz

    Hallo

    ich habe ein Bild als jpg und einen abgerundeten Rahmen als png.
    Das Innenleben des Rahmens ist natürlich transparent genauso wie die Ecken.

    Diese beide Bilder habe ich mit imagecopy() zusammengefügt.

    Nun sind die Ecken natürlich mit dem Bild gefüllt. Diese sollen allerdings transparent werden?

    Ich habe es mit einer 2 Farbe für die Ecken probiert und diese dann mit imagecolortransparent () transparent gemacht. Das Ganze funktioniert leider nicht als alpha sondern nur wie bei einem gif.

    Gibt es für mein Problem eine Lösung mittels php?

    Gruß
    Daniel


  • #2
    Zitat von daniels. Beitrag anzeigen
    Nun sind die Ecken natürlich mit dem Bild gefüllt.
    Wieso „natürlich“?

    Diese beide Bilder habe ich mit imagecopy() zusammengefügt.
    In welcher Reihenfolge?

    Welche Funktion(en) hast du benutzt, um überhaupt die Bilder an sich einzulesen?

    Kommentar


    • #3
      Weil diese Ecken beim Rahmen auch transparent sind.

      Ich hänge mal Bilder zum besseren Verständnis an:

      hier der Quellcode ohne imagecolortransparent() :

      PHP-Code:
      <?php
      error_reporting
      (E_ALL);

      $im imagecreatetruecolor(104,167);
      $bild imagecreatefromjpeg('bild2.jpg');

      $rahmen imagecreatefrompng('rahmen.png');

      //Alphablending
      imagealphablending($rahmentrue);

      imagecopy($im$bild0000104167);

      imagecopy($im$rahmen0000104167);


      //Dokument Header mit MIME-Type festlegen
      header("Content-Type: image/png");

      //Bild ausgeben
      imagepng($im); 

      //Speicher löschen
      imagedestroy($bild);
      imagedestroy($im);
      imagedestroy($rahmen);
      ?>
      p.s. anscheinend hat das Forum probleme beim upload von png. Diese werden immer zimlich klein , aber in der Vorschau kann man es hoffetnlich auch erkennen.
      Angehängte Dateien

      Kommentar


      • #4
        Zitat von daniels. Beitrag anzeigen
        PHP-Code:
        $im imagecreatetruecolor(104,167);
        $bild imagecreatefromjpeg('bild2.jpg');

        $rahmen imagecreatefrompng('rahmen.png');

        //Alphablending
        imagealphablending($rahmentrue);

        imagecopy($im$bild0000104167);

        imagecopy($im$rahmen0000104167); 
        Warum kopierst du denn das Originalbild erst um und dann das zweite noch drüber - anstatt direkt den Rahmen über der Originalbild zu kopieren?


        Zum selber testen taugen deine angehängten PNGs jedenfalls nichts.

        Kommentar


        • #5
          Ich glaube kaum, dass ohne Masken dieses Problem lösbar ist.
          --

          „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


          • #6
            Ich verstehe nicht so ganz, wenn deine "runden Ecken" nur an den Stellen transparent sind, an denen sie es sein sollen, dann kannst du die Bilder doch normal übereinander legen - oder habe ich da etwas mißverstanden?
            "Mein Name ist Lohse, ich kaufe hier ein."

            Kommentar


            • #7
              Er will aber später ein Bild haben, das innen das Miotiv hat und außen transparente Ecken. Ist das jetzt wirklich so schwer zu verstehen?
              --

              „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


              • #8
                @chrisb ist in dem Fall nicht nötig. Ein weglassen löst aber auch nicht das Problem.

                @nikosch genau so will ich das haben. Aber die Sache mit der Maske könnte der richtige Weg sein. Nur gibt es da PHP Funktionen, oder einen Lösungsansatz dazu?

                Kommentar


                • #9
                  Zitat von daniels. Beitrag anzeigen
                  Aber die Sache mit der Maske könnte der richtige Weg sein. Nur gibt es da PHP Funktionen, oder einen Lösungsansatz dazu?
                  Mit imagefilter kannst du ein paar Filter auf dein Bild anwenden; wobei ich bei denen auf Anhieb nicht direkt was für Transparenzmasken finde.

                  Sonst könnte man das Masken-Image auch pixelweise durchlaufen, und aus dem jeweiligen Farb- einen Transparenzwert ermitteln, der dann im eigentlichen Ziel-Image gesetzt wird. Ist natürlich nicht die performanteste Methode.

                  Kommentar

                  Lädt...
                  X