[PHP] Wasserzeichen

Dieses Thema im Forum "Webentwicklung" wurde erstellt von razor90, 14. September 2007 .

Schlagworte:
  1. 14. September 2007
    Wasserzeichen

    Hallo,
    hier mal ein altes Script von mir:

    PHP:
    <? php

    //Watermark by razor90
    //einfach mit image.php?img=[bild] aufrufen

    $watermark  imagecreatefrompng ( 'watermark.png' );      //Wasserzeichen einlesen

    $watermark_width  imagesx ( $watermark );              //Watermark Breite in Variable sichern
    $watermark_height  imagesy ( $watermark );              //Watermark HÃ�¶he in Variable sichern

    //Sicherstellen das die PNG-Transparenz von watermark.png erhalten bleibt
    imagealphablending ( $watermark false );
    imagesavealpha ( $watermark true );

    $src  $_GET [ 'img' ];                                  //das Bild das "gewatermarket" werden soll auslesen
    $file_info = pathinfo ( $src );                              //Dateiinfo auslesen
    $extension = strtolower ( $file_info [ "extension" ]);      //Dateiendung auslesen und in kleinbuchstaben umwandeln

    switch( $extension ) {                                   //Auswahl Dateiendung
        
    case( 'gif' ):                                      //wenn gif
        
    $im  imagecreatefromgif ( $src );                  //Gif-Bild einlesen
        
    break;
        
        case(
    'png' ):                                      //wenn png
        
    $im  imagecreatefrompng ( $src );                  //Png-Bild einlesen
        
    break;
        
        default:                                         
    //wenn anderes (jpg)
        
    $im  imagecreatefromjpeg ( $src );                  //Jpg-Bild einlesen
    }

    $size  getimagesize ( $src );                          //GrÃ�¶Ã�Ÿe der zu "watermarkenen" Datei einlesen
    $dest_x  $size [ 0 ] -  $watermark_width  5 ;              //Position des Watermaks auf der X-Achse + 5px Abstand zum Rand berechnen
    $dest_y  $size [ 1 ] -  $watermark_height  5 ;          //Position des Watermarks auf der Y-Achse + 5px Abstand zum Rand berechnen


    ###Falls es eine Gif ist, das Bild in TrueColor umwandeln###
    if ( $extension  ==  'gif' ) {
        
    $temp  imagecreatetruecolor ( $size [ 0 ] , $size [ 1 ]);
        
    imagecopy ( $temp $im 0 0 0 0 $size [ 0 ],  $size [ 1 ]);
        
    $im  $temp ;
        }

    ###Bilder zusammenkopieren###
    imagecopy ( $im $watermark $dest_x $dest_y 0 0 $watermark_width $watermark_height );

    header ( "Content-type: image/jpeg" );                  //Browser sagen das es sich um eine JPG handelt
    imagejpeg ( $im , '' , 90 );                                  //Bild als jpg an den Browser senden mit 90% QualitÃ�¤t

    ##Speicher der Bilder wieder freigeben##
    imagedestroy ( $im );
    imagedestroy ( $watermark );

    ?>
    Vorher: {bild-down: http://img128.imageshack.us/img128/3773/ava9vk.jpg}
    Nachher: {bild-down: http://img128.imageshack.us/img128/7910/image3en.jpg}


    Die Datei tut ihr dann einfach in den Ordner zu euren Bildern und ruft im Browser dann http://www.domain.tld/pfad/zu/bildern/image.php?img=blubb.jpg auf. Außerdem muss bei dem Script im gleichen Verzeichniss noch eine watermark.png sein, am besten mit transparenz
    Das Script Funktioniert mit .png, .gif und .jpg Dateien!

    Zusatz:
    Falls ihr wollt, das die Leute nicht sehen, das es über ein Script läuft, hilft euch mod_rewrite sehr gut
    Möchtet ihr z.b. nur
    http://www.domain.tld/bilder/bild1.jpg
    aufrufen, statt
    http://www.domain.tld/bilder/image.php?img=bild1.jpg
    ist es perfekt dafür! Der User merkt nicht das die Anfrage intern von bild1.jpg auf image.php?img=bild1.jpg umgeleitet wird, denn es steht trotzdem noch .../bild1.jpg in der Adressleiste!
    Dafür braucht ihr nur Webspace mit mod_rewrite, was aber nur die wenigsten Freehoster haben.

    1. Erstellt eine ".htaccess"-Datei in dem Ordner mit den Bildern und der image.php.
    2. Inhalt der .htaccess:
    Code:
    RewriteEngine On
    RewriteRule ^(.*).(jpg|png|gif)$ image.php?img=$1.$2
    3. bild1.jpg aufrufen und merken das es ein Wasserzeichen hat

    mfg r90
     
  2. 14. September 2007
    AW: Wasserzeichen

    du meinst wohl, es muss sich eine "watermark.png" und nicht eine "watermark.php" im ordner befinden ^^

    edit: da war wohl einer schneller ^^

    edit2: bei mir kommt n fehler:

    Fatal error: Call to undefined function: imagecreatefrompng() in /home/xxx/public_html/silentbob/image.php on line 6
     
  3. 14. September 2007
    AW: Wasserzeichen

    Du hast die libgd nicht installiert..

    Einfach mal Googlen haette es auch getan!

    Call to undefined function: imagecreatefrompng() - Google-Suche
     
  4. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.