Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: PHP: Vesileimalogo JPEG-kuviin

Sivun loppuun

kayttaja-2791 [11.08.2004 01:35:23]

#

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);
?>

makeuu [12.08.2004 09:11:34]

#

Hiano :)

D.J-Dew [12.08.2004 10:21:11]

#

Vautsi!

thefox [12.08.2004 11:58:19]

#

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.

kayttaja-2791 [12.08.2004 15:17:58]

#

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.

T.M. [15.08.2004 02:46:02]

#

Humm...
https://www.php.net/manual/en/function.imagealphablending.php
Suoraan manuskan kommenteista kopioitu?
Tai no ei ihan suoraan... muutamia lukuja muunneltu jne.

Miksi tuossa on headerina PNG, vaikka kyseessä on JPG-kuva?

kayttaja-2791 [15.08.2004 17:10:13]

#

"Miksi tuossa on headerina PNG, vaikka kyseessä on JPG-kuva?"

Muutettu.

"Humm...
https://www.php.net/manual/en/function.imagealphablending.php
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.

tsuriga [15.08.2004 22:26:46]

#

No worries, tein moisen. Sitä ei tosin ole kovin järkevää käyttää samalla tapaa suoraan img-tagissa vaikka sellainenkin mahdollisuus löytyy.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta