Zum automatischen Integrieren von Wasserzeichen auf Contentbildern kann man diese bei der Ausgabe bearbeiten. Dazu ist nur ein kleines Script und eine Zeile in der .htaccess notwendig.
Das Script speichert man als „watermark.php“ ab. Die Parameter sind natürlich beliebig anpassbar, welcher Parameter was für das Wasserzeichen macht, ist im Code beschrieben.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
<?php /********************************************** *** Automatic Watermark for Content Images *** *********************************************** *** *** *** to be used on any CMS. *** *** do not forget to alter your .htaccess *** *** to rewrite the image paths *** *** to this watermark.php *** *** *** *** Author: Thomas 'Fischi!' Fischer, 2010 *** *** based on an idea by webmastersucks.com *** *** http://www.fischi.cc/ *** *** *** **********************************************/ // set the header to jpg output, and get the url of the image wth the src parameter. header('Content-type: image/jpeg'); $src = $_GET['src']; // Check the Imagesize - and insert the right watermark for the right sizes. // Here on my blog: Thumbnails are processed with a frame and shadow, // small images with a watermark where just my logo is shown // and big images with the logo and url. other small images are left untouched. $origsize = getimagesize($src); // set the right watermarks if (eregi("120x120", $src)) { $watermark = imagecreatefrompng('http://www.fischi.cc/wp-content/themes/fischi/images/frame.png'); } else if ($origsize[0] < 160 && $origsize[1] < 160) { $skip = "true"; } else if ($origsize[0] < 400) { $watermark = imagecreatefrompng('http://www.fischi.cc/wp-content/themes/fischi/images/justhead.png'); } else { $watermark = imagecreatefrompng('http://www.fischi.cc/wp-content/themes/fischi/images/watermark.png'); } // create the temporary image. alter the if parameters, // if you don't want to process some images, for example transparent png's. // of course, there should not be too much trouble with content images. if(eregi('.gif',$src)) { $image = imagecreatefromgif($src); } elseif(eregi('.jpeg',$src)||eregi('.jpg',$src)) { $image = imagecreatefromjpeg($src); } elseif(eregi('.png',$src)) { $image = imagecreatefrompng($src); } else { exit("Your image is not a gif, jpeg or png image. Sorry."); } // just process the image, if a watermark has to be integrated. if ($skip != "true") { // watermark sizes. strongly recommended to be computed, not set statically. $watermark_width = imagesx($watermark); $watermark_height = imagesy($watermark); // get the position of the watermark. calculated from the size of the original image, // minus the size of the watermark. feel free to adjust these parameters. // for example, if you want the watermark to be displayed on the top left, // just set them both to zero. the last parameter (-0) gives you the option of leaving // a space between the end of the image and the watermark (kind of the margin in css) $dest_x = $origsize[0] - $watermark_width - 0; $dest_y = $origsize[1] - $watermark_height - 0; // putting the watermark on the original image imagecolortransparent($watermark, imagecolorat($watermark,0,0)); imagecopyresampled($image, $watermark, $dest_x, $dest_y, 0, 0, $watermark_width, $watermark_height, $watermark_width, $watermark_height); } // direct output of the image, as jpg. adjust the last parameter to set the quality. imagejpeg($image, "", 95); // cleaning out the temporary files. imagedestroy($image); imagedestroy($watermark); ?> |
Danach fügt man in die .htaccess folgende Zeile hinzu. Dieses Beispiel ist für die Integration des Wasserzeichens in WordPress. Das ganze funktioniert natürlich auch für alle anderen Systeme wie Joomla, SixCMS, Drupal, Mambo etc. Der Trick ist, durch einen regulären Ausdruck die Bilder, die im Uploadverzeichnis liegen, auf die eben erstellte watermark.php umzuleiten, und die Quelle des Bildes als Parameter mitzugeben. VORSICHT: Bitte aufpassen, dass die Bilder des Templates, das benutzt wird, nicht aus dem Uploadverzeichnis stammen, sonst gibt es das Wasserzeichen bei ALLEN Bildern, nicht nur denen im Content.
1 |
RewriteRule ^(.*)wp-content/uploads/(.*) $1watermark.php?src=wp-content/uploads/$2 |
Have Fun!
Manchmal zahlt es sich doch noch aus, PHP zu verstehen, und nicht nur Plugins zusammenzukopieren 🙂 Die meisten WordPress Plugins zum Thema Wasserzeichen/Watermark arbeiten direkt in WordPress, im Gegensatz zu dieser Lösung, welche unabhängig von einem WordPress Watermark Plugin funktioniert. Und flexibler ist es auch noch 🙂
The best in class, Depoxito come up with the money for you high-end
experience that direct the look and setting of genuine VIP standarts, we pay for you the best tempting to high-level experience of VIPs expect in any top stop
casino, grand rouse casino royale give you the extra studio design element including the grand
blackjack, offering our VIP Customer the best
experience of a Salon privee table.
New style table in addition to feature across the room past grand roulette upgraded upon our provider playtechs
mini prestige roulette which delivering more interesting and richer playing experience.
The other experience contains a sum of seven tables including five blackjack tables, one roulette table
and one baccarat table. Grand conscious casino royale has been tall hand-engineered to fit the needs
of our customer to using it, and contains unique elements that is specially designed to maximize
the impact value we got from our customers and diversify it to the existing network.
Soon, Depoxito will fabricate an enlarged veracity technology on breathing casino for our VIP
member, these most broadminded technology ever seen in enliven casino
including this improved reality. Which permit players
to experience products on an entire additional level which is never seen since
literally leaping out of the game and taking the blackjack,
baccarat, roulette and extra game into the mass entire level.
Depoxito VIP Baccarat, we have the funds for you
the no question exclusive stir VIP Baccarat that is played with in the works to 7 players at the similar table and our intensely trained lovely bring
to life baccarat dealer. And of course our VIP enthusiast
will vibes as if they were in fact sitting at one of the summit
casino baccarat table. This immersive gaming experience creates a
hugely carefree look that our VIP players will find difficult to surpass.
Here is the list of breathing casino game that
depoxito provide, we offer the widest range of rouse casino games upon the spread around including : blackjack unlimited, blackjack prestige, roulette, baccarat, poker, hi-lo, sic bo, and grand liven up casino royale such as Grand Baccarat, Grand
Blackjack and Grand Roulette for our VIP member. And of course as a zealot
of Depoxito you can enjoy every the games that we find the money for to you, all you dependence to
do is just visit our site depoxito and register it lonely
takes stirring to 3 minutes and subsequently youre customary to
play a role any game that you want.
Be our VIP, bodily our VIP believer of course decided you the best abet you can acquire from us every
you infatuation to be a VIP aficionada is no question easy.
every you habit is just save playing on our site, buildup and accomplish taking into consideration a VIP in the same way as the amount that
our company had written, keep playing and our customer relieve will edit you that
you are promoted to become a VIP supporter upon our site.
You can definitely see your enthusiasm within the article you write.
The arena hopes for even more passionate writers like you who aren’t afraid
to mention how they believe. Always follow your heart.
Vc sabe muito bem combinar as coisas !! https://www.sofac.org/User:MargaretChilders
Beim Test des Skripts ( wie am 20.01.2011 beschrieben) kommt bei mir die Fehlermeldung
Parse error: syntax error, unexpected ‚:‘ in ……../watermark.php on line 20
Ich finde den Fehler nicht.
Woran kann das liegen?
Viele Grüsse
Berni
Ping, Schub’s, Hallo?
Hallo Fischi,
ich hoffe es geht Dir gut 🙂
Wollte einfach mal das Thema WordPressplugin in Erinnerung bringen 😉
LG Oliver
Habs gefunden.
1. Fehler der benötigte Speicher war für die Bildgröße (1,8 MB) zu klein. (Bildformat verkleinert)
2.Die Pfadangaben passten nicht wenn die Bilddateien nicht im selben Pfad liegen. (das hab ich über die .htaccess angepasst)
Danke für dieses Script!
Gruß
Thomas
alles klar, fein dass du das selber gleich draufgekommen bist, weil ich durch meine derzeitigen Projekterln vergessen habe, die Kommentare zu checken.
Hoffe, dass es dir jetzt gut passt. Ich werde in mittlerer Zukunft auch ein WordPressplugin für dieses Script schreiben, damit es leicht verfügbar ist.
Viel Spaß inzwischen!
Lg Fischi
Hallo fischi,
bei mir läuft das irgendwie nicht.
Ich habe die original watermark.php ins root gelegt und versuche sie mit [root]/watermark.php?src=http://www.ffw-asse.de/images/sz-denkte_ehrungen.jpg aufzurufen.
Das Ergebnis lautet: Die Grafik „…/watermark.php?src=http://www.ffw-asse.de/images/sz-denkte_ehrungen.jpg“ kann nicht angezeigt werden, weil sie einenFehler enthält.
Das gleiche auf einem 2. Server beim selben Provider aber höherwertiges Paket.
Wo mache ich den Fehler?
Gruß
Thomas
Hallo Fischi,
vieleicht lässt sich das ja mit http://php.net/manual/de/image.examples.merged-watermark.php verbinden.
Gerade für Webseiten von Fotografen die evtl. nur einen Schriftzug transparent übers Bild haben wollen, wäre das noch einfacher als erst eine Wasserzeichengrafik zu erstellen.
hi oliver!
das wäre auf jeden fall eine variante. ich plane gerade, dieses script auch in wordpress-plugin form zu programmieren, damit man gar nichts mehr selbst eintragen muss. dann kommt auf jeden fall das schriftzug wasserzeichen hinzu.
lg fischi
Hallo Fischi,
super Script und genau das was ich gesucht habe. Bin ich froh das ich es gefunden habe und das jemand genau meine Vorstellung von sowas umgesetzt hat.
Ich musste erstmal etwas an ein paar Sicherheitseinstellungen auf dem Server drehen, das es läuft.
Danke,
Oliver
Danke Oliver, sowas hört man gerne 🙂
ich werde bald das Script updaten – zusammen mit dem Relaunch meiner Website, dann gibts noch mehr Optionen dazu!
Bis bald
Lg Fischi
Hi, sehr cooles „Plugin“. Danke dafür!
Funktioniert auch alles, nur weiss ich leider nicht, wie man das tatsächlich auf Bilder beschränken kann?
Und zwar funktionieren jetzt z.B. „mp3s“ im Upload Ordner von WordPress nicht mehr, da die auch durch das watermark.php Skript geschleift werden.
Wie umgehe ich denn das?
Einfach ein „.jpg“ in der htaccess datei hinten dran funktioniert bei mir nicht… Vielen Dank im Voraus!
Servus Lars!
stimmt, an diesen Fall habe ich bei meinem Blog nicht gedacht, da ich nur Bilder hochlade.
Dies kannst du so umleiten:
RewriteRule ^(.*)wp-content/uploads/(.*)\.(jpeg|jpg|gif|bmp|png) $1watermark.php?src=wp-content/uploads/$2.$3
Wenn du magst, kannst du auch die gif’s rausnehmen, da sonst die animationen verloren gehen.
Funktioniert das für dich?
Lg fischi
Moin Fischi,
ich habe die watermark.php erst mal zum Testen so gelassen, die htaccess habe ich auch erstellt.
Leider ist kein Wasserzeichen zu sehen, nachdem ich ein Foto hochgeladen habe.
Kann es daran liegen, dass ich noch lokal mit XAMPP teste?
Beste Grüße
Frank
Das Skript selbst (die watermark.php) läuft bei dir, oder? Ansonsten kannst du das einfach testen: Wenn du die Watermark.php mit dem $_GET-Parameter src aufrufst, kommt nur das von dir gewünschte Bild.
also [adresse]/watermark.php?src=http://www.t-ng.at/images/static/tng-party.jpg
Falls das mit der originalen watermark.php gemacht wird, sollte nun auf dem Bild meiner Band rechts unten mein Logo zu sehen sein. Wenn das funktioniert, sind wir schon auf dem richtigen Weg.
Original:
http://www.t-ng.at/images/static/tng-party.jpg
Mit meiner Watermark.php schaut das so aus:
http://www.fischi.cc/watermark.php?src=http://www.t-ng.at/images/static/tng-party.jpg
Die Rewrite Rule macht hier folgendes:
Damit automatisch alle Bilder, die auf deiner Seite verwendet werden, durch die watermark.php geschickt werden, brauchen wir eine Rewriterule, die das Verzeichnis der Bilder aus den aufgerufenen Bildern erkennt, und auf die watermark.php umleitet, so dass das Skript das Wasserzeichen darüberlegt.
Da auf dem WordPress System die watermark.php im Root-Verzeichnis abgespeichert ist, kann ich die src für das Bild einfach auf den relativen Dateipfad setzen.
Falls das hier Probleme macht, oder die Bilder, die du
RewriteRule ^(.*)wp-content/uploads/(.*) $1watermark.php?src=wp-content/uploads/$2
Durch das Arbeiten mit relativen Dateipfaden sollte es egal sein, dass du lokal auf dem XAMPP arbeitest.