ilch Forum » Ilch Clan 1.1 » Module und Modifikationen » Gallery Watermark Upload

Geschlossen
  1. #1
    User Pic
    DeroX Mitglied
    Registriert seit
    22.01.2007
    Beiträge
    3
    Beitragswertungen
    0 Beitragspunkte
    Suche verzweifelt ein Watermark Upload Gallery Modul für Ilch, hab da leider selber nicht so'ne große Ahnung von, sonst würd ich es ja mal selbst versuchen mit einzubauen...
    Ihr wißt schon ein normales Bild uploaden und währenddessen verschmelzt das Script ein Copyright ins Bild! Kann mir da jemand weiterhelfen? THX. zunge


    verwendete ilchClan Version: 1.1
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    SLJ Hall Of Fame
    Registriert seit
    18.05.2004
    Beiträge
    15.492
    Beitragswertungen
    3 Beitragspunkte
    Hi sowas haeb ich auch vor bin noch nicht dazu gekommen ich wollte diesen code hier nutzen,...:)

    <?php
    function watermark($image, $watermark, $save_as, $position=5, $transparency=50, $t_x=0, $t_y=0) {
    
        if($position < 1 || $position > 9)
            return FALSE;
        if(!file_exists($image) || !file_exists($watermark))
            return FALSE;
        $infos_img = getimagesize($image);
        $infos_wat = getimagesize($watermark);
        if(!in_array($infos_img[2], array(2,3)) ||     !in_array($infos_wat[2], array(2,3)))
            return FALSE;
        if($infos_img[0]<$infos_wat[0] || $infos_img[1]<$infos_wat[1])
            return FALSE;
        if($infos_wat[0]<$t_x || $infos_wat[1]<$t_y)
            return FALSE;
        $transparency = 100 - $transparency;
        if($transpareny < 0 || $transpareny > 100)
            return FALSE;
        @unlink($save_as);
    
        // Position x        
        switch (($position-1)%3) {
            case 0:
                $pos_x = 0;
                break;
            case 1:
                $pos_x = round(($infos_img[0]-$infos_wat[0])/2, 0);
                break;
            case 2:
                $pos_x = $infos_img[0]-$infos_wat[0];
                break;
        }
        // Position y
        switch (floor(($position-1)/3)) {
            case 0:
                $pos_y = 0;
                break;
            case 1:
                $pos_y = round(($infos_img[1]-$infos_wat[1])/2, 0);
                break;
            case 2:
                $pos_y = $infos_img[1]-$infos_wat[1];
                break;
        }
        // watermark-procedure
        if($infos_img[2] == 2)
            $img_image = imagecreatefromjpeg($image);
        if($infos_img[2] == 3)
            $img_image = imagecreatefrompng($image);
        if($infos_wat[2] == 2)
            $img_watermark = imagecreatefromjpeg($watermark);
        if($infos_wat[2] == 3)
            $img_watermark = imagecreatefrompng($watermark);
        imagealphablending($img_image, TRUE);
        imagealphablending($img_watermark, TRUE);
    imagecolortransparent($img_watermark, imagecolorat($img_watermark, $t_x, $t_y));
    imagecopymerge($img_image, $img_watermark, $pos_x, $pos_y, 0, 0
    , $infos_wat[0], $infos_wat[1], $transparency);
    if(strtolower(substr($save_as, -3)) == "png") {
            if(imagepng($img_image, $save_as))
                return TRUE;
            else
                return FALSE;
        } else {
            if(imagejpeg($img_image, $save_as))
                return TRUE;
            else
                return FALSE;
        }
        return FALSE;
    }
    if(watermark("ausgangsbild.jpg", "logo.png", "speichere_unter.jpg", 5))
        echo "<img src=\"speichere_unter.jpg\"><br /><br />\n";
    ?>
    externer Link
    Ilch 1.0.4 PHP 7.0 und PDO Fähig na klar lächeln
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    DeroX Mitglied
    Registriert seit
    22.01.2007
    Beiträge
    3
    Beitragswertungen
    0 Beitragspunkte
    Danke für das Script. Sowas in der Art habe ich auch gefunden, nur hab ich keine Ahnung wie man das Script mit einbaut?! Hab die Befürchtung, das man ne menge aus dem original Code rausschnipsel und ändern muss und da ich in PHP nicht so der große Held bin,fällt es mir doch recht schwer... Am liebsten wär mir was vorgekautes... zwinker


    Zuletzt modifiziert von DeroX am 22.01.2007 - 20:27:36
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Du musst nur die Funktion einbauen und dann die Funktion aufrufen, so wie es unten schon einmal getan wurde

    if(watermark("ausgangsbild.jpg", "logo.png", "speichere_unter.jpg", 5))
        echo "<img src=\"speichere_unter.jpg\"><br /><br />\n";
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    lordrepha Mitglied
    Registriert seit
    11.03.2006
    Beiträge
    1.362
    Beitragswertungen
    22 Beitragspunkte
    wo soll ich die funktion aufrufen???
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Mhh lass mich überlegen, ach ja stimmt, genau dort wo du das Watermark in dein Bild machen willst, tut mir leid, dass ich das nicht gleich erwähnt hab. zunge
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    DeroX Mitglied
    Registriert seit
    22.01.2007
    Beiträge
    3
    Beitragswertungen
    0 Beitragspunkte
    Ich probiers mal die Tage... Danke an SLJ und Mairu!
    0 Mitglieder finden den Beitrag gut.
  8. #8
    User Pic
    lordrepha Mitglied
    Registriert seit
    11.03.2006
    Beiträge
    1.362
    Beitragswertungen
    22 Beitragspunkte
    lool ok habs verstanden mal ne andere frage ghet das auch das es automatisch gemacht wird bei allen bildern....
    0 Mitglieder finden den Beitrag gut.
  9. #9
    User Pic
    SLJ Hall Of Fame
    Registriert seit
    18.05.2004
    Beiträge
    15.492
    Beitragswertungen
    3 Beitragspunkte
    Über eine schleife müsste es schon gehen,... bzw. angenommen du lädst halt 20 bilder hoch kansnt du das auch über ne schleife laufen lassen,...

    Alternativ kann man wasserzeichen auch mit normalen Zeichen programmen machen z.B. Ms-Paint.

    mfg
    SLJ
    externer Link
    Ilch 1.0.4 PHP 7.0 und PDO Fähig na klar lächeln
    0 Mitglieder finden den Beitrag gut.
  10. #10
    User Pic
    lordrepha Mitglied
    Registriert seit
    11.03.2006
    Beiträge
    1.362
    Beitragswertungen
    22 Beitragspunkte
    ja schon aber es wäre doch gut wenn der user bilder hochläd und autoatisch steht ein Wasserzeichen unten rechts im eck
    0 Mitglieder finden den Beitrag gut.
  11. #11
    User Pic
    lordrepha Mitglied
    Registriert seit
    11.03.2006
    Beiträge
    1.362
    Beitragswertungen
    22 Beitragspunkte
    gibt es jemanden der es schon hinbekommen hat mit dem oben genannten quellcode??
    0 Mitglieder finden den Beitrag gut.
  12. #12
    User Pic
    SLJ Hall Of Fame
    Registriert seit
    18.05.2004
    Beiträge
    15.492
    Beitragswertungen
    3 Beitragspunkte
    Ja klar ich selber habe es schon hinbekommen,....:) Ich habe es halt als funktion angewand und im grunde nix geändert,...
    externer Link
    Ilch 1.0.4 PHP 7.0 und PDO Fähig na klar lächeln
    0 Mitglieder finden den Beitrag gut.
  13. #13
    User Pic
    lordrepha Mitglied
    Registriert seit
    11.03.2006
    Beiträge
    1.362
    Beitragswertungen
    22 Beitragspunkte
    ok kannst du mir oder uns da hilfestellung geben??
    0 Mitglieder finden den Beitrag gut.
  14. #14
    User Pic
    SLJ Hall Of Fame
    Registriert seit
    18.05.2004
    Beiträge
    15.492
    Beitragswertungen
    3 Beitragspunkte
    Hmm,... einfach den code einfügen und eben den link zur datei zum wasserzeichen und dort hin wo er es sichern soll angeben,... zunge

    Wichtig zuerst muss man das bild orginal hochladen ! Dann erstellt man das wasserzeichen davon und dann kann man es wieder löschen,... zunge

    Ne Thumbnail ersteöllung geht auch das würde ich aber vor dem wasserzeichen machen,... lächeln

    Was ich noch nie getestet habe nen wasserzeichen hochzuladen das nen transparenten background hat bzw. einen bekommen soll,... zwinker
    externer Link
    Ilch 1.0.4 PHP 7.0 und PDO Fähig na klar lächeln
    0 Mitglieder finden den Beitrag gut.
  15. #15
    User Pic
    lordrepha Mitglied
    Registriert seit
    11.03.2006
    Beiträge
    1.362
    Beitragswertungen
    22 Beitragspunkte
    ok soweit so gut eine Frage zum Allgemeinen verständniss... Das script ist NICHT so das wenn man in der Galery bilder hochläd automatisch ein wasserzeichen draufgelegt wird??
    0 Mitglieder finden den Beitrag gut.
  16. #16
    User Pic
    SLJ Hall Of Fame
    Registriert seit
    18.05.2004
    Beiträge
    15.492
    Beitragswertungen
    3 Beitragspunkte
    Doch schon du must halt das script noch einbauen und alles richtig verlinken,... Bei mir ist es so das ich nen bild hochladen z.b. 800 X 600 er erstellt das vorschau bild in 200 X 150 danach fügt er in das 800 X 600 bild das wasserzeichen ein und das alte bild wird gelöscht,... oder ich das orginal bild einfach überschreiben kann habe ich nicht getestet,... aber ist doch auch wurst das orginal bekommt halt noch nen names anhängsel neu_ dazu und das mit wasserzeichen eben nur die katid_id_endung und das thumb noch nen pre_ davor zunge
    externer Link
    Ilch 1.0.4 PHP 7.0 und PDO Fähig na klar lächeln
    0 Mitglieder finden den Beitrag gut.
  17. #17
    User Pic
    lordrepha Mitglied
    Registriert seit
    11.03.2006
    Beiträge
    1.362
    Beitragswertungen
    22 Beitragspunkte
    ok kannst du kurz grob ne schritt für schritt erklärung machen??
    0 Mitglieder finden den Beitrag gut.
  18. #18
    User Pic
    lordrepha Mitglied
    Registriert seit
    11.03.2006
    Beiträge
    1.362
    Beitragswertungen
    22 Beitragspunkte
    wo binde ich den code oben ein wenn ich das Wasserzeichen in der usergalery bei jedem neu hochgeladenen Bild haben will
    0 Mitglieder finden den Beitrag gut.
  19. #19
    User Pic
    SLJ Hall Of Fame
    Registriert seit
    18.05.2004
    Beiträge
    15.492
    Beitragswertungen
    3 Beitragspunkte
    bild hochladen

    danach machst das wasserzeichen

    dann wird das thumbnail erstellt

    und zumschluss kannst die alte datei wieder löschen fals der die nicht einfach überschreibt,... lächeln
    externer Link
    Ilch 1.0.4 PHP 7.0 und PDO Fähig na klar lächeln
    0 Mitglieder finden den Beitrag gut.
  20. #20
    User Pic
    lordrepha Mitglied
    Registriert seit
    11.03.2006
    Beiträge
    1.362
    Beitragswertungen
    22 Beitragspunkte
    deine hilfe in ehren aber wo binde ich den code oben ein
    0 Mitglieder finden den Beitrag gut.
  21. #21
    User Pic
    SLJ Hall Of Fame
    Registriert seit
    18.05.2004
    Beiträge
    15.492
    Beitragswertungen
    3 Beitragspunkte
    Kann ich dir leider nicht sagen da ich es ja selber nie in die gallery eingebunden habe und auch so kein 1.1 nutze und es eben auch nicht auf dem server habe,.... lächeln

    Aber normal sollte da was von copy stehen,...
    externer Link
    Ilch 1.0.4 PHP 7.0 und PDO Fähig na klar lächeln
    0 Mitglieder finden den Beitrag gut.
  22. #22
    User Pic
    lordrepha Mitglied
    Registriert seit
    11.03.2006
    Beiträge
    1.362
    Beitragswertungen
    22 Beitragspunkte
    an der stelle wo ich es eibinden muss im script??
    0 Mitglieder finden den Beitrag gut.
  23. #23
    User Pic
    lordrepha Mitglied
    Registriert seit
    11.03.2006
    Beiträge
    1.362
    Beitragswertungen
    22 Beitragspunkte
    ich probiere es nun schon seit stunden ... ohne Hilfe bekomme ich es einfach nicht hin... vielleicht gibt es ja einen hier der es mir sagen kann... manchmal stehe ich einfach auf dem schlauch
    0 Mitglieder finden den Beitrag gut.
  24. #24
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Also bei der gallery wird doch die funktion move_uploaded_file aufgerufen, so und jetzt willst du am besten gleich das Watermark mit reinmachen, also machst du statt
    @move_uploaded_file ($_FILES['file']['tmp_name'][$k], $bild_url)

    watermark($_FILES['file']['tmp_name'][$k], "logo.png", $bild_url)

    würde ich jetzt mal vorschlagen.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  25. #25
    User Pic
    lordrepha Mitglied
    Registriert seit
    11.03.2006
    Beiträge
    1.362
    Beitragswertungen
    22 Beitragspunkte
    danke dir erstmal Mairu nun noch ein paar fragen

    • wo tu ich die Funktion hin...(der lange quellcode ganz oben)
    • wo tu ich die logo.png datei hin
    • jetrzt ist es so das ich im moment gar kein bild mehr hochladen kann er bringt aber auch keine fehler meldung



    Zuletzt modifiziert von lordrepha am 04.02.2007 - 12:09:53
    0 Mitglieder finden den Beitrag gut.
  26. #26
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Für die logo.png gilt das gleiche wie für alle Dateien, immer von der index.php aus gesehen, also wenn du keinen Pfad mit angibst muss sie im gleichen Pfad wie die index.php sein, ja du Funktion kannst du an den Anfang der Datei setzen.

    Wenn das dann noch nicht geht, lässt du das move_uploaded_file am besten, gibst aber statt $bild_url eine $tempfile an, welches du dann mit watermark zu $bild_url weiterverarbeitest, so sollte es dann eigentlich gehen, wenn die Funktion geht, das kann ich dir natürlich nicht sagen.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  27. #27
    User Pic
    lordrepha Mitglied
    Registriert seit
    11.03.2006
    Beiträge
    1.362
    Beitragswertungen
    22 Beitragspunkte
    das wird nix ich blicks nicht
    0 Mitglieder finden den Beitrag gut.
  28. #28
    User Pic
    lordrepha Mitglied
    Registriert seit
    11.03.2006
    Beiträge
    1.362
    Beitragswertungen
    22 Beitragspunkte
    also bitte nochmal für noobs was muss ich hier machen

    <?php 
    #   Copyright by: Manuel
    #   Support: www.ilch.de
    
    
    defined ('main') or die ( 'no direct access' );
    
    
    if ($allgAr['forum_usergallery'] == 0) { exit(); }
    
    $uid = escape($menu->get(2), 'integer');
    $img_per_site = $allgAr['gallery_imgs_per_site'];
    $img_per_line = $allgAr['gallery_imgs_per_line'];
    
    # zeige alle gallery
    if (empty($uid)) {
    
      $title = $allgAr['title'].' :: Users :: Gallery';
      $hmenu  = $extented_forum_menu.'<a class="smalfont" href="?user">Users</a><b> &raquo; </b>Gallery'.$extented_forum_menu_sufix;
      $design = new design ( $title , $hmenu, 1);
      $design->header();
      $i = 0;
      $class = 'Cmite';
      $x = '';
      if (loggedin()) {
        $x .= '<a href="index.php?user-usergallery-'.$_SESSION['authid'].'">Meine Gallery</a><br /><br />';
      }
      $erg = db_query("SELECT uid, prefix_user.name as uname, COUNT(*) as anz FROM prefix_usergallery LEFT JOIN prefix_user ON prefix_usergallery.uid = prefix_user.id GROUP BY uid, uname ORDER BY anz DESC");
      while ($r = db_fetch_assoc($erg)) {
        $class = ( $class == 'Cmite' ? 'Cnorm' : 'Cmite' );
        $x .= '<div class="'.$class.'" style="float: left; padding: 5px;"><a href="index.php?user-usergallery-'.$r['uid'].'">'.$r['uname'].'</a><br /><span class="smalfont">Anzahl Bilder: '.$r['anz'].'</span></a></div>';
        if ( $i <> 0 AND ($i % 5 ) == 0 ) { $x .= '<br />'; }
      }
      $tpl = new tpl ( 'user/gallery');
      $tpl->set_out('x',$x,4);
      $design->footer();
     exit();
    }
    
    # user gallery zeigen
    $uname = db_result(db_query("SELECT name FROM prefix_user WHERE id = ".$uid),0,0);
    
    $title = $allgAr['title'].' :: Users :: Gallery';
    $hmenu  = $extented_forum_menu.'<a class="smalfont" href="index.php?user">Users</a><b> &raquo; </b><a class="smalfont" href="?user-usergallery">Gallery</a><b> &raquo; </b>von '.$uname.$extented_forum_menu_sufix;
    $design = new design ( $title , $hmenu, 1);
    $design->header();
    
    
    
    $tpl = new tpl ('user/gallery');
    $tpl->set('uid', $uid);
    $tpl->set('uname', $uname);
    # bild loeschen...
    if ($menu->getA(4) == 'd' AND is_numeric($menu->getE(4)) AND loggedin() AND (is_siteadmin() OR $uid == $_SESSION['authid'])) {
      $delid = escape($menu->getE(4), 'integer');
      $x = @db_result(db_query("SELECT endung FROM prefix_usergallery WHERE uid = ".$uid." AND id = ".$delid),0,0);
      if (!empty($x)) {
        @unlink ( 'include/images/usergallery/img_thumb_'.$delid.'.'.$x );
        @unlink ( 'include/images/usergallery/img_'.$delid.'.'.$x );
        @db_query("DELETE FROM prefix_usergallery WHERE uid = ".$uid." AND id = ".$delid);
      }
    }
    
    # bild hochladen
    if (is_writeable('include/images/usergallery') AND loggedin() AND $uid == $_SESSION['authid']) {
      require_once('include/includes/func/gallery.php');
      
      $size = @getimagesize ($_FILES['file']['tmp_name']);
      
      if (!empty($_FILES['file']['name']) AND ($size[2] == 2 OR $size[2] == 3)) {
        $name = $_FILES['file']['name'];
        $tmp = explode('.',$name);
        $tm1 = count($tmp) -1;
        $endung = escape($tmp[$tm1], 'string');
        unset($tmp[$tm1]);
        $name = escape(implode('',$tmp), 'string');
        $besch = escape($_POST['text'], 'string');
        $id = db_result(db_query("SHOW TABLE STATUS FROM `". DBDATE ."` LIKE 'prefix_usergallery'"),0,'Auto_increment');
        $bild_url = 'include/images/usergallery/img_'.$id.'.'.$endung;
        if (@move_uploaded_file ($_FILES['file']['tmp_name'], $bild_url)) {
          db_query("INSERT INTO prefix_usergallery (uid,name,endung,besch) VALUES (".$uid.",'".$name."','".$endung."','".$besch."')");
          $bild_thumb = 'include/images/usergallery/img_thumb_'.$id.'.'.$endung;
          create_thumb ($bild_url, $bild_thumb, $allgAr['gallery_preview_width']);
          echo '<b>Datei '.$name.'.'.$endung.' erfolgreich hochgeladen</b><br />';
          $page = $_SERVER["HTTP_HOST"]. dirname($_SERVER["SCRIPT_NAME"]);
          echo 'Bildlink: <a target="_blank" href="http://'.$page.'/'.$bild_url.'">http://'.$page.'/'.$bild_url.'</a><br />';
          echo 'Oder klein: <a target="_blank" href="http://'.$page.'/'.$bild_thumb.'">http://'.$page.'/'.$bild_thumb.'</a><br /><br />';
        }
      }
    }
      
    # bilder abfragen
        $limit = $img_per_site;
        $page = ($menu->getA(3) == 'p' ? $menu->getE(3) : 1 );
        $MPL = db_make_sites ($page , '' , $limit , 'index.php?user-usergallery-'.$uid , "usergallery WHERE uid = ".$uid);
        $anfang = ($page - 1) * $limit;
    		$erg = db_query("SELECT name, besch, endung, id FROM prefix_usergallery WHERE uid = ".$uid." ORDER BY id DESC LIMIT ".$anfang.",".$limit);
    		
        $tpl->set('imgperline', $allgAr['gallery_imgs_per_line']);
        $tpl->set('MPL',$MPL);
        $tpl->out(0); $class = 'Cnorm';
        $i = 0;
        if ( db_num_rows($erg) > 0 ) {
    			while($row = db_fetch_assoc($erg) ) {
    				$class = ( $class == 'Cmite' ? 'Cnorm' : 'Cmite' );
    				$row['class'] = $class;
            $row['besch'] = unescape($row['besch']);
            if (loggedin() AND (is_siteadmin() OR $uid == $_SESSION['authid'])) {
              $row['besch'] .= '<a href="index.php?user-usergallery-'.$uid.'-p'.$page.'-d'.$row['id'].'"><img src="include/images/icons/del.gif" border="0" alt="l&ouml;schen" title="l&ouml;schen" /></a>';
            }
            $row['width'] = round( 100 / $img_per_line );
            if ( $i <> 0 AND ($i % $img_per_line ) == 0 ) { echo '</tr><tr>'; }
    			  $tpl->set_ar_out($row,1);
            $i++;
    			}
          if ( $i % $img_per_line <> 0 ) {
            $anzahl = $img_per_line - ($i % $img_per_line);
            for($x=1;$x<=$anzahl;$x++){
              echo '<td class="'.$class.'"></td>';
            }
          }
        }
        $tpl->out(2);
    # bilder abfragen
    
    
    # bild hochladen
    if (is_writeable('include/images/usergallery') AND loggedin() AND $uid == $_SESSION['authid']) {
      $tpl->out(3);
    }
    
    $design->footer();
    ?>
    0 Mitglieder finden den Beitrag gut.
  29. #29
    User Pic
    Stuffmann Mitglied
    Registriert seit
    15.01.2007
    Beiträge
    5
    Beitragswertungen
    0 Beitragspunkte
    Hallo.

    Hat es mittlerweile jemand geschafft, daß Watermark auf seine Hp in der Gallery etc. einzubauen?
    0 Mitglieder finden den Beitrag gut.
  30. #30
    User Pic
    Vanilleeis Mitglied
    Registriert seit
    10.06.2007
    Beiträge
    39
    Beitragswertungen
    0 Beitragspunkte
    Kann mir da mal einer genauer weiter helfen blicke da nicht mehr so ganz durch welche Dateien es sind und wo ich was ändern muß
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu Module und Modifikationen

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten