Суреттеріңіз бен бейнелеріңізді Интернетте жариялаған кезде үлкен тәуекелге барасыз, өйткені материалдарыңызды басқа жүздеген ресурстарға оңай көшіруге болады. Жаңалық үшін суретіңізді, мысалы, сіз көп жұмыс істеген, дереккөзді, яғни сіздің сайтыңызды көрсетпестен басқа сайттан табу өте жақсы болмас еді, солай ма? Жұмсақ сөзбен айтқанда, ренжіп қаласыз, егер бұл жаңалық үшін қарапайым сурет емес, Photoshop-та күрделі жұмыс болса, ашуланамын деу - ештеңе айтпау! Сонымен, графикаңызды қорғау үшін не істей аласыз?

Интернеттегі суреттердің немесе бейнелердің авторлық құқығын қорғау үшін ыңғайлы болу үшін әдетте сандық су таңбасы немесе сандық су таңбасы қолданылады. Әр жүктеп салынған суретті қорғау үшін оған сандық қолтаңбаны тіркеңіз. CEZ жүктеп салынған суреттерге әдемі және эстетикалық түрде орналастырылған веб-сайтыңыздың немесе компанияңыздың логотипі болуы мүмкін.

Алдымен константалар түріндегі қажетті параметрлерді қамтитын файлды жасайық - /config.php:

Define("WATERMARK_OVERLAY_IMAGE", "/develop/images/watermark.png"); // Орталық көрме залына апаратын жол анықтау("WATERMARK_OUTPUT_QUALITY", 100); // Сандық бейне жазбасынан алынған кескіннің сапасы. Сапа файл өлшеміне тікелей әсер ететінін есте сақтаңыз. define("ЖҮКтелген_СУРЕТ_ТЕКСЕРІЛІГІ", "/әзірлеу/қалта1/"); // Түпнұсқа жүктелген кескіндердің орналасуына жол define("WATERMARK_IMAGE_DESTINATION", "/develop/folder2/"); // Қабатталған сандық толқын пішіні бар кескіндерге жол

Жоғарыда жасалған файлдарды жүктеуді орындайтын файлға жинаймыз /upload.php

Include («config.php»); include("functions.php"); $нәтиже = ImageUpload($_FILES["userfile"]["tmp_name"], $_FILES["userfile"]["name"]); if ($result === false)( echo "Жүктеу сәтсіз аяқталды!"; )

Мысалы, егер жүктеліп жатқан сурет болса:

Содан кейін су таңбасын жүктеп алып, қолданғаннан кейін сіз келесі суретті аласыз:

Бұл мысалда жүктеп алынған сурет бір қалтада, ал сандық су таңбасы салынған сурет басқа қалтада сақталады, осылайша сіз әрқашан түпнұсқа кескіндерге қол жеткізе аласыз, бірақ, әрине, цифрлық фотосуреттерден суреттерді орналастырған жөн. сайтында көрме.

(178,4 КБ, 989 рет қаралды)

Егер сіз сурет редакторларымен алаңдамай фотосуретке су таңбасын қосқыңыз келсе немесе фотосуреттерді серверге жүктеп салу кезінде қосқыңыз келсе, онда бұл оқулық сізге арналған.

Бұл оқулықта мен сізге бастапқы кескінді өзгертпей-ақ суретке су таңбасын қалай қосу керектігін көрсетемін. Ең алдымен, су белгісі ретінде пайдалану үшін сурет қажет.

Содан кейін біз файл тақырыбын жасаймыз:

// бұл жол браузерге jpg сурет тақырыбын өткізіп жатқанымызды айтады("content-type: image/jpeg");

Содан кейін біз png кескінін жасап, оның өлшемдерін аламыз:

// png форматында су таңбасын жасау $watermark = imagecreatefrompng("watermark.png"); // ені мен биіктігін алу $watermark_width = imagesx($watermark); $watermark_height = кескінді ($су белгісі);

Біз түпнұсқа суретпен де солай істейміз, бірақ тек jpg пішімінде. Бұл пішін арқылы жүктеп салынған фотосуреттерге тән. Біз келесідей әрекет етеміз:

// jpg суретін жасау $image_path = "original.jpg"; $image = imagecreatefromjpeg($сурет_жолы); // сурет өлшемін алу $size = getimagesize($image_path);

Енді суретке су таңбасын қою керек:

// төменгі оң жаққа су таңбасын қойыңыз. 5px шегініс $dest_x = $өлшем - $су белгісі_ені - 5; $dest_y = $өлшем - $су белгісі_биіктігі - 5;

Содан кейін екі сурет үшін араластыру опцияларын орнатайық:

Imagealphablending($image, true); imagealphablending($су белгісі, шын);

Соңында біз параметрлерді пайдаланып жаңа кескін жасаймыз:

// суреттің жаңа көшірмесін жасау($image, $watermark, $dest_x, $dest_y, 0, 0, $watermark_width, $watermark_height); imagejpeg($сурет);

Өзіңізді тазалау маңызды:

// жадты босату imagedestroy($image); imagedestroy($су белгісі);

Су таңбасының мөлдірлігін реттеу үшін Photoshop бағдарламасын пайдалануға болады.

Мұның бәрі теориямен. Енді алған білімімізді нақты жобаға қолданайық. Мұның барлығы файлға сақталуы керек. Мысалы, watermark.php деп аталады

Тақырып("мазмұн түрі: сурет/jpeg"); // GET $image = $_GET["image"] арқылы сурет атын алу; // су таңбасын жасау $watermark = imagecreatefrompng("watermark.png"); // су таңбасының биіктігі мен енін алу $watermark_width = imagesx($watermark); $watermark_height = кескінді ($су белгісі); // бастапқы кескіннен jpg жасаңыз $image_path = "/path/to/image/folder/" . $сурет; $image = imagecreatefromjpeg($сурет_жолы); //бірдеңе дұрыс болмаса, if ($image === false) ( қайтару жалған; ) $size = getimagesize($image_path); // суретке су таңбасын қою $dest_x = $size - $watermark_width - 5; $dest_y = $өлшем - $су белгісі_биіктігі - 5; imagealphablending($image, true); imagealphablending($су белгісі, шын); // суреттің жаңа көшірмесін жасау($image, $watermark, $dest_x, $dest_y, 0, 0, $watermark_width, $watermark_height); imagejpeg($сурет); // жадты босату imagedestroy($image); imagedestroy($су белгісі);

Енді бастапқы кескінді өзгертпей су таңбасы бар фотосуретті көрсету үшін келесі кодты пайдаланыңыз.

Веб-сайттардың иелері (форумдар, хабарламалар тақталары және т.б.) сайттың барлық үлкен кескіндерінде су белгілерін жасау мәселесімен жиі кездеседі.

Әрине, бұл мәселені әр суретте су таңбасын қолмен жасау арқылы шешуге болады, дегенмен, біріншіден, бұл көп уақытты алады, екіншіден, суреттің су таңбасымен және онсыз екі нұсқасын сақтау қажет болады.

Бұл мәселенің шешімі сайтқа кірушіге жібермес бұрын суретке су таңбасын динамикалық түрде қолдану болуы мүмкін.

Интернетте екі файл түрінде бұл мәселенің шешімі бар, оның мазмұны төменде келтірілген.
".htaccess" файлының бастапқы коды

DirectoryIndex index.php RewriteEngine қосулы RewriteCond %(REQUEST_FILENAME) -f RewriteRule ^(.*)$ /watermark/_watermark.php

"_watermark.php" файлының бастапқы коды

250) && ($info_o > 250)) ( // Альфа арнасы жоқ кескіндер үшін // Функцияның соңғы параметрі су таңбасының мөлдірлік дәрежесі imageCopyMerge($out, $watermark, ($info_o-$info_w)/ 2, ($info_o -$info_w)/2, 0, 0, $info_w, $info_w, 25); // Альфа арнасы бар кескіндер үшін // Бұл жағдайда мөлдірлік кескіннің альфа арнасы арқылы реттеледі. өзі // imageCopy($out, $watermark, ($info_o-$info_w)/2, ($info_o-$info_w)/2, 0, 0, $info_w, $info_w); ) коммутатор ($info_o) ( case 1: imageGIF($out); үзіліс; 2 регистр: imageJPEG($out); үзіліс; 3 жағдай: imagePNG($out); үзіліс; әдепкі: жалған қайтару; ) imageDestroy($out); imageDestroy($original); imageDestroy($су белгісі); шындықты қайтару; ) ?>

Шешім төмендегідей болады: «.htaccess» файлы кескін файлдары бар каталогқа орналастырылады. Оған қоса, серверде «_watermark.php» сценарий файлы және «watermark.png» нақты су таңбасының файлы бар «су белгісі» қалтасы жасалады.

Сонымен қатар, Интернетте табылған түпнұсқа нұсқасымен салыстырғанда, мен екі мәтіндік файлға аздаған өзгерістер енгіздім.

«.htaccess» файлында «jpeg» кеңейтімі кескін файлдарын іздеуге арналған тұрақты өрнекке қосылды, өйткені ол жиі кездеседі.

"_watermark.php" сценарийі су таңбасын суреттің ортасына орналастыратындай етіп қайта өңделген (бұл шешілетін мәселенің ерекшелігіне байланысты қажет болды) және жасалған су таңбасының мөлдірлігін реттеу мүмкіндігі бар қосылды (скрипт мәтініндегі түсініктемелер бұл параметрді өзіңіз конфигурациялауға көмектеседі).

Сондай-ақ, «су таңбасы» қалтасын суреттері бар қалтаға орналастыру фактісіне назар аударыңыз, түпнұсқа көздер кеңес бергендей, біз қалаған нәтижеге қол жеткізе алмаймыз, өйткені бұл жағдайда әрбір қалтада жеке «.htaccess» файлы және «су белгісі» қалтасы болуы керек. Бұл «.htaccess» файлы сайттың түбірлік каталогынан «_watermark.php» файлына абсолютті жолдарды көрсететініне байланысты. Осылайша, суреттері бар әр қалтада бөлек «су белгісі» ішкі қалтасы бар болса, су таңбасын (немесе оны суретке қосатын сценарийді) өзгерту қажет болса, біз барлық қалталарға өзгертулер енгізуіміз керек.

Бұл мәселені болдырмау үшін сайттың түбірлік каталогында «су таңбасы» қалтасын жасауды және оны әр уақытта өзгертпей-ақ «.htaccess» файлын кескін каталогтарына орналастыруды ұсынамын. Бұл жағдайда су таңбасын немесе сценарийді өзгерту үшін сайттың тек бір жеріне өзгертулер енгізу қажет болады. Бұл жағдайда әртүрлі «.htaccess» файлдарынан әртүрлі сценарийлерге сілтеме жасау арқылы кескіндері бар әртүрлі қалталар үшін әртүрлі су белгілерін жасауға болады, мысалы, «_watermark-1.php», «_watermark-2.php», т.б.

Осылайша, қорытындылайтын болсақ, сайттың барлық кескіндеріне су таңбаларын қолдану үшін төменде берілген мұрағатты жүктеп алып, оны орауыштан шығарып, «су белгісі» қалтасын сайттың түбірлік каталогына орналастырып, су таңбасының файлын ауыстыру керек « «watermark.png» файлын өз бетіңізбен енгізіңіз және «.htaccess» файлын сол сайт каталогтарына орналастырыңыз, олардың суреттері су таңбасы болуы керек.

Барлық қажетті файлдары бар мұрағатты осы жерден жүктеп алуға болады