Hintergrund transparent bei watermark, aber auf eingefügtem Bild grau...

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

  • Hintergrund transparent bei watermark, aber auf eingefügtem Bild grau...

    Hallo,

    habe mir ein kleines Uploadscript programmiert, das ein watermark aus einer Datei einfügt. Nun habe ich folgendes Problem:
    der Hintergrund des watermarks ist transparent, wird er aber auf dem Bild eingefügt, ist der Hintergrund auf einmal grau! Woran kann die liegen?

    Hier der Code:
    PHP-Code:
    <html>
    <head>
        <title>Dateiupload</title>

    </head>

    <body>

    <h3><font color="#FF0000"><em><strong>Wieviele Dateien willste hochladen?</strong></em></font></h3>
        <p><font color="#000000"></font></p>
            <form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post" >
                <select name="numfiles" size="1">
                    <option value="1">1    Datei
                    <option value="2">2    Dateien
                    <option value="3">3 Dateien
                    <option value="4">4 Dateien
                    <option value="5">5 Dateien
                    <option value="6">6 Dateien
                    <option value="7">7 Dateien
                    <option value="8">8 Dateien
                    <option value="9">9 Dateien
                    <option value="10">10 Dateien
                    <option value="11">11 Dateien
                    <option value="12">12 Dateien
                    <option value="13">13 Dateien
                    <option value="14">14 Dateien
                    <option value="15">15 Dateien
                    <option value="16">16 Dateien
                    <option value="17">17 Dateien
                    <option value="18">18 Dateien
                    <option value="19">19 Dateien
                    <option value="20">20 Dateien
                </select>
                        <input type="Submit" value="Anzahl festlegen" name="regnum">
            </form>
            <form enctype="multipart/form-data" method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>">
                <?php
                    
    if (isset($regnum))
                    {
                        echo 
    "<b>$numfiles</b>";
                        echo 
    $numfiles == '1' ' Datei kann' ' Dateien können';
                        echo 
    ' hochgeladen werden:<p>';
                        for (
    $i=1$i<=$numfiles$i++)
                        {
                            echo 
    "<input type=\"File\" name=\"myfile$i\"><br />\n";
                        }
                        echo 
    '<p>';
                        echo 
    '<input type="Submit" name="sendfiles" value="Dateien senden">';
                    }
                    if (isset(
    $sendfiles))
                    {
                        
    $numsendfiles count($HTTP_POST_FILES);
                        echo 
    "<b>$numsendfiles</b> ";
                        echo 
    $numsendfiles == 'Datei' 'Dateien';
                        echo 
    $numsendfiles == ' wurde gesendet.' ' wurden gesendet.';
                        foreach(
    $HTTP_POST_FILES as $strFieldName => $arrPostFiles)
                        {
                       if (
    $arrPostFiles['size'] > 0)
                            {
                                
    $strFileName $arrPostFiles['name'];
                                
    $intFileSize $arrPostFiles['size'];
                                
    $strFileMIME $arrPostFiles['type'];
                                
    $strFileTemp $arrPostFiles['tmp_name'];
                                
    $newimage = @imagecreatefromjpeg($strFileTemp);
                                
    $watermark imagecreatefrompng('watermark.png');
                                
    $watermark_width imagesx($watermark);
                                
    $watermark_height imagesy($watermark);

                                
    $image imagecreatetruecolor($watermark_width$watermark_height);
                                
    $image imagecreatefromjpeg($strFileTemp);
                                
    $size getimagesize($strFileTemp);

                                
    $dest_x $size[0] - $watermark_width 5;
                                
    $dest_y $size[1] - $watermark_height 5;
                                
    imagecopymerge($image$watermark$dest_x$dest_y00,
     
    $watermark_width$watermark_height100);
                                
    imagejpeg($image'neu/'.$strFileName);
                                
    imagedestroy($image);
                                
    imagedestroy($watermark);

                                
            echo 
    '<img src="neu/'.$strFileName.'" alt="" />';
                                echo 
    "Datei <b>$strFileName</b> erfolgreich hochgeladen:";
                                echo 
    "<ul>";
                                echo 
    "<li>Grösse: $intFileSize Bytes<br />";
                                echo 
    "<li>MIME: $strFileMIME<br />";
                                echo 
    "</ul>";
                            } 
    /* end if */
                        
    /*end foreach */
                    
    }
                
    ?>
            </form>
    </body>
    </html>
    Danke für eure Hilfe!

  • #2
    IE kann keine transparenz bei PNGs anzeigen falls du das meinst.
    Gibt aber nen "Fix" mit JavaScript...
    Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
    var_dump(), print_r(), debug_backtrace und echo.
    Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
    Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
    Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

    Kommentar


    • #3
      meint er nicht

      Hintergrund transparent bei watermark, aber auf eingefügtem Bild grau...

      Kommentar


      • #4
        Hi!

        Nein, das meint ich nicht. Das Script hat mir jemand ein wenig umgeschrieben... Es geht darum, das auf das Bild ein Copyright gesetzt wird, ein Schriftzug der in einer Bilddatei steckt... Rund um den Schriftzug ist aber auch noch Hintergrund, den habe ich auf transparent gesetzt. Trotzdem ist der Hintergrund auf dem Bild dann nicht transparent sondern grau, oder weiß (hab nich so genau hin geschaut! )
        Zuletzt geändert von boehseronkel; 07.08.2005, 12:48.

        Kommentar


        • #5
          und bei einem anderen script was ich mal ausprobiert habe, da kommt es so:



          (irgendwie zeigt er das bild nicht an, warum weiß ich nicht)

          deshalb nochmal als link!

          http://www.musterschueler.com/galeri...)/image352.jpg
          Zuletzt geändert von boehseronkel; 07.08.2005, 12:51.

          Kommentar


          • #6
            Na, ist doch wunderbar! Codes vergleichen, fertig. Lösung hinterher für suchende Personen bitte posten.

            Kommentar


            • #7
              Hallo!

              So,

              für alle die mal ein Problem haben wie ich es hatte, hier die Lösung:

              PHP-Code:
              $transparent imagecolorat($watermark11);
              imagecolortransparent($watermark$transparent); 
              $watermark ist das Watermark. Imagecolorat ermittelt den Farbwert des Bildes. Dabei müssen 3 Parameter angegeben werden. Der 1. Parameter steht für das Bild das geprüft werden soll. Der 2. Parameter steht für die x Koordinate auf der geprüft werden soll und der 3. Paramter für die y-Koordinate.

              Die Funktion imagecolortransparent definiert die ermittelte Farbe dann als transparent.

              Kommentar

              Lädt...
              X