Wasserzeichen

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

  • Wasserzeichen

    N'abend...

    ich habe ein Problem...

    Ich möchte gerne ein Bild über ein anderes setzen, und eine Farbe transparent setzen. Klappt auch soweit.
    Leider gibt es ein Problem:

    Hier ist das Overlaybild:

    http://web3.2a3-server.de/filter/wolke65.png

    Und hier das Bild, dass Überdeckt werden soll:
    http://web3.2a3-server.de/123456/Sonnenuntergang.jpg

    Das Resultat aus beiden ist hier:
    http://web3.2a3-server.de/effects/image_alpha.php


    Ich habe versucht dieses "Wolkenbild" zu vergrößern, aber es geht einfach nicht. Sehe ich einfach den Fehler nicht mehr?
    Hier mein Quelltext:

    PHP-Code:
    <?php
         $sfile  
    "Sonnenuntergang.jpg";
         
    $filter "wolke65.png";

         
    $infos_img getimagesize($sfile);
         
    $infos_wat getimagesize($filter);
         
    $transparency 100 $transparency;

         
    $img_image imagecreatefromjpeg($sfile);

         
    imagealphablending($img_imageTRUE);
         
    $thumb imagecreatetruecolor($infos_img[0],$infos_img[1]);
        
    imagecopyresampled($thumb,$img_image,0,0,0,0,$infos_img[0],$infos_img[1],$infos_img[0],$infos_img[1]);


         
    $waterfile imagecreatefrompng($filter);

         
    imagealphablending($waterfileTRUE);
         
    $thumb_w imagecreatetruecolor($infos_img[0],$infos_img[1]);
        
    imagecopyresampled($thumb_w,$waterfile,0,0,0,0,$infos_img[0],$infos_img[1],$infos_img[0],$infos_img[1]);
         
    imagecolortransparent($thumb_whexdec("#fd0399"));
         
    imagecopymerge($thumb$thumb_w0000$infos_img[0], $infos_img[1], $transparency);
         
    imagejpeg($thumb);
         
    imagedestroy($thumb);

    ?>


    Gruß David
    Die meiste Unwissenheit könnte besiegt werden. Wir eignen uns nur deshalb keine Kenntnisse an, weil wir sie nicht wünschen.

  • #2
    sollte das hier:
    PHP-Code:
    imagecopyresampled($thumb_w,$waterfile,0,0,0,0,$infos_img[0],$infos_img[1],$infos_img[0],$infos_img[1]); 
    nicht
    PHP-Code:
    imagecopyresampled($thumb_w,$waterfile,0,0,0,0,$infos_wat[0],$infos_wat[1],$infos_img[0],$infos_img[1]); 
    heissen?

    *verschieb zu php
    Kissolino.com

    Kommentar


    • #3
      Nein, das soll ja auf die Größe des Originalbildes gezogen werden
      Die meiste Unwissenheit könnte besiegt werden. Wir eignen uns nur deshalb keine Kenntnisse an, weil wir sie nicht wünschen.

      Kommentar


      • #4
        sorry, nochmal ein Nachtrag:

        Ich habe einen überarbeiteten Quelltext.

        PHP-Code:
             $sfile  "Sonnenuntergang.jpg";
             
        $filter "wolke65.png";

             
        $infos_img getimagesize($sfile); // Bilderdaten
             
        $transparency 100 $transparency// Transparenz

             
        $img_image imagecreatefromjpeg($sfile);
             
        $waterfile imagecreatefrompng($filter);


             
        $thumb   imagecreatetruecolor($infos_img[0],$infos_img[1]); // Erstelle Bild mit Größe des Originals
             
        $thumb_w imagecreatetruecolor($infos_img[0],$infos_img[1]); // Erstelle Bild mit Größe des Originals


             
        imagecopyresized($thumb,$img_image,0,0,0,0,$infos_img[0],$infos_img[1],$infos_img[0],$infos_img[1]);
             
        imagecopyresized($thumb_w,$waterfile,0,0,0,0,$infos_img[0],$infos_img[1],$infos_img[0],$infos_img[1]);


             
        imagecolortransparent($thumb_whexdec("#fd0399"));
             
        imagecopymerge($thumb$thumb_w0000$infos_img[0], $infos_img[1], $transparency);
             
        imagejpeg($thumb);
             
        imagedestroy($thumb); 
        Die meiste Unwissenheit könnte besiegt werden. Wir eignen uns nur deshalb keine Kenntnisse an, weil wir sie nicht wünschen.

        Kommentar


        • #5
          gegensorry, sollte so sein:
          PHP-Code:
          imagecopyresampled($thumb_w,$waterfile,0,0,0,0,$infos_img[0],$infos_img[1],$infos_wat[0],$infos_wat[1]); 
          Kissolino.com

          Kommentar


          • #6
            Das liefert mir nur ein ganz schwarzes Bild.

            Hier der Code:
            PHP-Code:
                 $infos_img getimagesize($sfile);
                 
            $transparency 100 $transparency;

                 
            $img_image imagecreatefromjpeg($sfile);
                 
            $waterfile imagecreatefrompng($filter);


                 
            $thumb   imagecreatetruecolor($infos_img[0],$infos_img[1]);
                 
            $thumb_w imagecreatetruecolor($infos_img[0],$infos_img[1]);


                 
            imagecopyresized($thumb,$img_image,0,0,0,0,$infos_img[0],$infos_img[1],$infos_img[0],$infos_img[1]);
                 
            imagecopyresampled($thumb_w,$waterfile,0,0,0,0,$infos_img[0],$infos_img[1],$infos_wat[0],$infos_wat[1]);


                 
            imagecolortransparent($thumb_whexdec("#fd0399"));
                 
            imagecopymerge($thumb$thumb_w0000$infos_img[0], $infos_img[1], $transparency);



                 
            imagejpeg($thumb);
                 
            imagedestroy($thumb); 
            Die meiste Unwissenheit könnte besiegt werden. Wir eignen uns nur deshalb keine Kenntnisse an, weil wir sie nicht wünschen.

            Kommentar


            • #7
              wo ist denn das getimagesize() von deinem watermark hin?
              Kissolino.com

              Kommentar


              • #8
                Das brauche ich ja nicht mehr.

                Watermark soll ja auf die Größe des Originalbildes gebracht werden.
                Da benutze ich ja die Daten von $img_image.
                In diesem Fall ist es zum Beispiel 800 x 600
                Das Watermark hat eine Ursprungsgröße von: 237 x 164 Pixel.


                Muss mich nochmal berichtigen:
                imagecopyresampled bringt kein schwarzes Bild sondern das gleiche Ergebnis wie imagecopyresized.
                Die meiste Unwissenheit könnte besiegt werden. Wir eignen uns nur deshalb keine Kenntnisse an, weil wir sie nicht wünschen.

                Kommentar


                • #9
                  imagecopyresized ( resource dst_im, resource src_im, int dstX, int dstY, int srcX, int srcY, int dstW, int dstH, int srcW, int srcH)
                  übersetzt:
                  imagecopyresized (zielbild, quellbild, start_zielX, start_zielY, start_quelleX, start_quelleY, ziel_breite, ziel_höhe, quelle_breite, quelle_höhe)

                  preisfrage: was ist bei dir dieser funktion nicht bekannt? ich rate mal, wenn der wert nicht existiert ($img_wat[]) setzt die funktion automatisch 0 oder 1 oder whatever. die vorgabe-farbe ist schwarz ... dein bild auch, weil schwarz aufkaliert wird. *nur so geraten*

                  am rande: die parameter sind bei bei resampled identisch

                  EDIT:
                  hab grad deinen nachtrag gelesen .... trotzdem stimmen deine parameter nicht
                  Zuletzt geändert von Wurzel; 14.01.2005, 23:56.
                  Kissolino.com

                  Kommentar


                  • #10
                    Und Du sollst die Wurzel allen Übels sein?

                    Dabei hast du mich auf etwas gebracht, das mir die lösung lieferte.
                    Auch wenn es noch unsauber ist, es funktioniert!

                    Lösung:
                    Ich habe hier einmal manuell
                    imagecopyresampled($thumb_w,$waterfile,0,0,0,0,"800","600","250","300");

                    eingegeben, und es klappt!

                    quelle_breite, quelle_höhe

                    nun... die nächste Preisfrage geht an Dich:
                    Das "Quellbild" wird ziemlich pixelig. Kann man das verhindern?
                    Die meiste Unwissenheit könnte besiegt werden. Wir eignen uns nur deshalb keine Kenntnisse an, weil wir sie nicht wünschen.

                    Kommentar


                    • #11
                      PHP-Code:
                      <?php
                           $sfile  
                      "Sonnenuntergang.jpeg";
                           
                      $filter "wolke65.png";
                           
                      $infos_img getimagesize($sfile);
                           
                      $infos_wat getimagesize($filter);

                           
                      $thumb imagecreatefromjpeg($sfile);
                           
                      $waterfile imagecreatefrompng($filter);

                           
                      $thumb_w imagecreate($infos_img[0],$infos_img[1]);
                           
                      imagecopyresized($thumb_w,$waterfile,0,0,0,0,$infos_img[0],$infos_img[1],$infos_wat[0],$infos_wat[1]);
                           
                      imagecolortransparent($thumb_w2);

                           
                      imagecopymerge($thumb$thumb_w0000$infos_img[0], $infos_img[1], 100);

                           
                      imagejpeg($thumb,'test.jpg'100);
                           
                      imagedestroy($thumb);
                      ?>
                      <img src="test.jpg">
                      hab grad nur ne gd 1.6 zur verfügung ... geht aber auch damit ... nicht schön, aber selten

                      pixelig? das quell-bild? eher die maske ... ich würd mal so vorgehen:
                      - die maske als png in gross (800x600)
                      - einlesen
                      - transparenz zuweisen
                      - verkleinern
                      - zusammen-mergen

                      wenn es die transparenz behält, ist die qualität besser ... wenn nicht, bin ich für eine andere lösung jetzt zu müde.
                      Kissolino.com

                      Kommentar


                      • #12
                        So.... Also soweit funktioniert alles.

                        Bis auf einen gravierenden Fehler:
                        Das Bild hat viele Rosa streifen...

                        so sieht das resultat aus:
                        http://web3.2a3-server.de/t.jpg
                        Die meiste Unwissenheit könnte besiegt werden. Wir eignen uns nur deshalb keine Kenntnisse an, weil wir sie nicht wünschen.

                        Kommentar

                        Lädt...
                        X