Du tar en stor risiko når du publiserer bildene og videoene dine på Internett, siden innholdet ditt enkelt kan kopieres til hundrevis av andre nettsteder. Det ville ikke være bra å finne bildet ditt for nyhetene, for eksempel som du jobbet hardt med, på et annet nettsted uten å angi kilden, det vil si nettstedet ditt, ikke sant? For å si det mildt, vil du bli opprørt, og hvis det ikke var et enkelt bilde for nyhetene, men et komplekst arbeid i Photoshop, er det å si at du er sint å si ingenting! Så hva kan du gjøre for å beskytte grafikken din?

For å beskytte opphavsretten til bilder eller videoer på Internett, brukes vanligvis et digitalt vannmerke eller digitalt vannmerke for enkelhets skyld. Fest et vannmerke til hvert opplastede bilde for å sikre det. CEH kan være logoen til nettstedet eller firmaet ditt, vakkert og estetisk plassert på de opplastede bildene.

La oss først lage en fil som inneholder de nødvendige innstillingene i form av konstanter - /config.php:

Define("WATERMARK_OVERLAY_IMAGE", "/develop/images/watermark.png"); // Sti til vannmerket ditt define("WATERMARK_OUTPUT_QUALITY", 100); // Kvaliteten på det mottatte bildet fra vannmerket. Husk at kvaliteten direkte påvirker filstørrelsen. define("UPLOADED_IMAGE_DESTINATION", "/develop/folder1/"); // Banen til plasseringen av de opprinnelige innlastede bildene definere("WATERMARK_IMAGE_DESTINATION", "/develop/folder2/"); // Sti til bilder med overlagt vannmerke

La oss samle filene opprettet ovenfor i filen som utfører nedlastingen /upload.php

include("config.php"); include("functions.php"); $result = ImageUpload($_FILES["brukerfil"]["tmp_name"], $_FILES["brukerfil"]["navn"]); if ($result === usant)( ekko "Opplastning mislyktes!"; )

For eksempel, hvis bildet som ble lastet var:

Etter å ha lastet inn og påført et vannmerke, får du følgende bilde:

I dette eksemplet lagres det opplastede bildet i én mappe, og bildet som har blitt digitalt vannmerket i en annen, slik at du alltid har tilgang til originalbildene, men du bør selvfølgelig plassere bilder fra CEH på siden .

(178,4 KiB, 989 treff)

Hvis du vil legge til et vannmerke til et bilde uten å bry deg med bilderedigering eller legge det til mens du laster opp bilder til serveren, så er denne leksjonen for deg.

I denne opplæringen skal jeg vise deg hvordan du legger til et vannmerke til et bilde uten å faktisk endre det originale bildet. Først av alt trenger du et bilde som du vil bruke som vannmerke.

Deretter danner vi filoverskriften:

// denne linjen vil fortelle nettleseren at vi sender en jpg-bildehode ("content-type: image/jpeg");

Deretter danner vi et png-bilde og får dimensjonene:

// lag et png-vannmerke $watermark = imagecreatefrompng("watermark.png"); // få bredde og høyde $watermark_width = imagesx($watermark); $watermark_height = imagesy($watermark);

Vi vil gjøre det samme med originalbildet, men kun i jpg-format. Dette er vanlig for bilder som lastes opp via et skjema. Vi opptrer som følger:

// lag et jpg-bilde $image_path = "original.jpg"; $image = imagecreatefromjpeg($image_path); // få bildedimensjon $størrelse = getimagesize($bildebane);

Nå må vi plassere et vannmerke på bildet:

// sett vannmerket nederst til høyre. 5px padding $dest_x = $size - $watermark_width - 5; $dest_y = $size - $watermark_height - 5;

Deretter setter vi blandingsalternativene for begge bildene:

imagealphablending($image, true); imagealphablending($vannmerke, sant);

Til slutt lager vi et nytt bilde ved å bruke parametrene:

// lag en ny bildekopi($image, $watermark, $dest_x, $dest_y, 0, 0, $watermark_width, $watermark_height); imagejpeg($bilde);

Det er viktig å ta med seg:

// ledig minne imagedestroy($image); imagedestroy($vannmerke);

Du kan bruke Photoshop til å justere gjennomsiktigheten til vannmerket.

Det er alt med teori. Nå skal vi bruke kunnskapen vår i et reelt prosjekt. Alt dette må lagres i en fil. For eksempel kalt watermark.php

Header("innholdstype: bilde/jpeg"); // få bildenavn via GET $image = $_GET["image"]; // lag et vannmerke $watermark = imagecreatefrompng("watermark.png"); // få vannmerke høyde og bredde $watermark_width = imagesx($watermark); $watermark_height = imagesy($watermark); // lag jpg fra originalbildet $image_path = "/bane/til/bilde/mappe/" . $image; $image = imagecreatefromjpeg($image_path); //hvis noe går galt if ($image === false) ( return false; ) $size = getimagesize($image_path); // sett et vannmerke på bildet $dest_x = $size - $watermark_width - 5; $dest_y = $size - $watermark_height - 5; imagealphablending($image, true); imagealphablending($vannmerke, sant); // lag en ny bildekopi($image, $watermark, $dest_x, $dest_y, 0, 0, $watermark_width, $watermark_height); imagejpeg($bilde); // ledig minne imagedestroy($image); imagedestroy($vannmerke);

Nå, for å vise et bilde som vil ha et vannmerke uten å endre originalbildet, bruk følgende kode.

Nettstedseiere (fora, oppslagstavler osv.) står ofte overfor problemet med vannmerking av alle store nettstedsbilder.

Selvfølgelig kan dette problemet løses ved å manuelt lage et vannmerke på hvert bilde, men for det første tar det mye tid, og for det andre blir det nødvendig å lagre to versjoner av bildet, med og uten vannmerke.

Løsningen på dette problemet kan være å dynamisk bruke et vannmerke på bildet før det overføres til den besøkende på nettstedet.

Det er en løsning på dette problemet på Internett i form av to filer, hvis innhold er gitt nedenfor.
Kildekoden til ".htaccess"-filen

DirectoryIndex index.php RewriteEngine On RewriteCond %(REQUEST_FILENAME) -f RewriteRule ^(.*)$ /watermark/_watermark.php

Kildekoden til filen "_watermark.php"

250) && ($info_o > 250)) ( // For bilder uten alfakanal // Den siste parameteren i funksjonen er graden av opasitet til vannmerket imageCopyMerge($out, $watermark, ($info_o-$info_w)/ 2, ($info_o -$info_w)/2, 0, 0, $info_w, $info_w, 25); // For bilder med en alfakanal // I dette tilfellet styres gjennomsiktighet av alfakanalen til selve bildet // imageCopy($out, $watermark, ($info_o-$info_w)/2, ($info_o-$info_w)/2, 0, 0, $info_w, $info_w); ) bryter ($info_o) (case 1 : imageGIF($out); break; case 2: imageJPEG($out); break; case 3: imagePNG($out); break; default: return false; ) imageDestroy($out); imageDestroy($original); imageDestroy($vannmerke); return true; ) ?>

Løsningen koker ned til følgende, ".htaccess"-filen plasseres i katalogen med bildefilene. I tillegg til den opprettes mappen "vannmerke" på serveren, som inneholder skriptfilen "_watermark.php" og selve vannmerkefilen "watermark.png".

Samtidig, sammenlignet med originalversjonen som ble funnet på Internett, gjorde jeg mindre endringer i begge tekstfilene.

I ".htaccess"-filen er utvidelsen "jpeg" lagt til det regulære uttrykket for bildefilsøk, som også er vanlig.

"_watermark.php"-skriptet har blitt redesignet for å plassere vannmerket i midten av bildet (dette var påkrevd av den spesifikke oppgaven som ble løst) og muligheten til å justere gjennomsiktigheten til det opprettede vannmerket er lagt til (kommentarer i skriptet kroppen vil hjelpe deg med å angi denne parameteren selv).

Du bør også være oppmerksom på det faktum at å legge "vannmerke"-mappen i bildemappen, som originalkildene anbefaler, ikke vil oppnå ønsket resultat, fordi. i dette tilfellet må vi ha sin egen ".htaccess"-fil og "vannmerke"-mappe i hver mappe. Dette skyldes det faktum at ".htaccess"-filen inneholder absolutte stier fra nettstedets rotkatalog til "_watermark.php"-filen. Dermed har vi en egen "vannmerke" undermappe i hver mappe med bilder, hvis vi trenger å endre vannmerket (eller skriptet som overlegger det på bildet), må vi gjøre endringer i alle mapper.

For å unngå dette problemet anbefaler jeg å opprette en "vannmerke"-mappe i nettstedets rotkatalog, og plassere en ".htaccess"-fil i bildekatalogene uten å måtte endre den hver gang. I dette tilfellet, for å endre vannmerket eller skriptet, må vi bare gjøre endringer på ett sted på nettstedet. I dette tilfellet kan du lage forskjellige vannmerker for forskjellige mapper med bilder ved å referere til forskjellige skript fra forskjellige ".htaccess"-filer, for eksempel "_watermark-1.php", "_watermark-2.php", etc.

Så oppsummert kan vi si at for å bruke vannmerker på alle bilder av nettstedet, må du laste ned arkivet vedlagt nedenfor, pakke det ut, plasser "vannmerke"-mappen i rotkatalogen til nettstedet, erstatte vannmerket fil "watermark.png" i den med ditt eget, og plasser ".htaccess"-filen i de katalogene på nettstedet, bilder fra som skal merkes med et vannmerke.

Du kan laste ned et arkiv som inneholder alle nødvendige filer fra denne