Elikästä tälläinen ihan yksinkertainen koodivinkki kuinka laitetaan vesileima jpeg-kuvaan vaikka luvattoman kopioinnin estämiseksi. Vaatii luonnollisesti GD:n enabloituna PHP:ssä.
Ensinnä tee logo.png ja tee siihen mieleisesi läpinäkyvyys alpha-blendingiä käyttäen. Sitten vain sovellat tuota koodia, eipä siinä paljoa epäselvyyden mahdollisuuksia voi edes olla...
Demo:
http://koti.mbnet.fi/wahit/watermark/gallery.php
Systeemin rakenne:
http://koti.mbnet.fi/wahit/watermark/
Tuossa siis haettu kuvat gallery.php:stä koodilla:
<img src="watermark.php?photo=<?php print $_GET['photo']; ?>">
Mutta tuo on tietenkin vain yksi tapa.
WATERMARK.PHP
<?php header("Content-type: image/jpeg"); if ($_GET['photo']) $photo = $_GET['photo'].".jpg"; else //TÄHÄN TESTIKUVAN OSOITE (JOS EI KÄYTETÄ TUOTA $_GETIÄ) $photo = "1.jpg"; $photoimage = imagecreatefromjpeg($photo); imagealphablending($photoimage, true); //JA TUOHON SITTEN SE LOGON OSOITE $logoimage = imagecreatefrompng('logo.png'); $logowidth = imagesx($logoimage); $logoheight = imagesy($logoimage); imagecopy($photoimage, $logoimage, 20, 20, 0, 0, $logowidth, $logoheight); imagejpeg($photoimage); imagedestroy($photoimage); imagedestroy($logoimage); ?>
Hiano :)
Vautsi!
Elävässä elämässä noita kuvia ei välttämättä ole järkeä generoida reaaliajassa vaan ne voisi cachata jotenkin. Silloin kannattaisi myös viritellä esto palvelimen ulkopuolisille kuville.
Oikeassa käytössä kannattaa kyllä tehdä tuo cachetus. Itse en alkanut tänne kehittämään koodia tuon pitemmälle ihan selkeytyssyistä, tuollaisenaan tuo on helppo istuttaa vaikka oman järjestelmän kuvien uploadiin.
Humm...
https://www.php.net/manual/en/function.
Suoraan manuskan kommenteista kopioitu?
Tai no ei ihan suoraan... muutamia lukuja muunneltu jne.
Miksi tuossa on headerina PNG, vaikka kyseessä on JPG-kuva?
"Miksi tuossa on headerina PNG, vaikka kyseessä on JPG-kuva?"
Muutettu.
"Humm...
https://www.php.net/manual/en/function.
Suoraan manuskan kommenteista kopioitu?
Tai no ei ihan suoraan... muutamia lukuja muunneltu jne."
Humm... Hyvä pointti. No tämä on nyt näemmä poistettukin ylläpidon toimesta, joten sepä sitten siitä. Vaikka sen verran sanonkin että eipä juuri muita järkeviä tapoja tehdä tuota ole olemassa. Kieltämättä ymmärrän että samannimiset muuttujat (photoimage ja logoimage) varmaankin aiheuttavat epäilyä ja tekijänoikeudellisia kysymyksiä...
Pitänee sitten tehdä uusi ja parempi versio, mietinkin että tuon voisi toteuttaa funktiolla ja juuri tuolla cachetuksella varustettuna.
No worries, tein moisen. Sitä ei tosin ole kovin järkevää käyttää samalla tapaa suoraan img-tagissa vaikka sellainenkin mahdollisuus löytyy.
Aihe on jo aika vanha, joten et voi enää vastata siihen.