ইন্টারনেট বর্তমান বড় সংখ্যাছবি, যা সাধারণত সাইটের মালিক বা সাইট ব্যবহারকারীদের দ্বারা আপলোড করা হয়। এর প্রাসঙ্গিকতার উপর নির্ভর করে, ছবিটি সাইট থেকে অন্য সাইটে স্থানান্তরিত হতে পারে। কপিরাইট উল্লেখ না, প্রতিটি সাইটের মালিক তার সাইট থেকে ছবি অন্যান্য সম্পদে অনুলিপি করা হয় যে সত্য পছন্দ করতে পারে না. সাইটের চিত্রগুলির সাধারণ অনুলিপির বিরুদ্ধে লড়াই করার একটি উপায় হিসাবে, এটি চিত্রগুলিতে জলছাপ প্রয়োগ করার জন্য উদ্ভাবিত হয়েছিল, যা নির্দেশ করে যে ছবিটি একটি নির্দিষ্ট সংস্থানের অন্তর্গত। এটি বিশেষ করে এমন সাইটগুলির জন্য সত্য হতে পারে যেখানে প্রচুর সংখ্যক অনন্য চিত্র রয়েছে৷
আসুন একটি কোডের উদাহরণ দেখি যা ডাউনলোড করা চিত্রগুলিতে একটি জলছাপ প্রয়োগ করা দেখায়।
সুতরাং, প্রধান সেটিংস ধ্রুবক আকারে রয়েছে এবং কোডে প্রথমে আসে:
// ওয়াটারমার্ক ইমেজ সংজ্ঞায়িত করার পথ ("WATERMARK_OVERLAY_IMAGE", "/lab/watermark/watermark.png"); // কম্প্রেশন, পরিসীমা 0-100 (ছবির গুণমানকে প্রভাবিত করে) সংজ্ঞায়িত করুন ("WATERMARK_OUTPUT_QUALITY", 100); // সোর্স ইমেজ সংজ্ঞায়িত ফোল্ডার ("UPLOADED_IMAGE_DESTINATION", "/lab/watermark/upload/src/"); // প্রক্রিয়াকৃত ছবি সহ ফোল্ডার সংজ্ঞায়িত ("WATERMARK_IMAGE_DESTINATION", "/lab/watermark/upload/");
পৃষ্ঠায় আমরা একটি ছবি আপলোড ফর্ম রাখব, যার মাধ্যমে ছবিগুলি সার্ভারে পাঠানো হবে।
ফর্ম কোড:
ঠিক আছে, এখন সবচেয়ে গুরুত্বপূর্ণ বিষয় হল ইমেজ প্রসেসিং এর ফাংশন। এই ফাংশন পৃষ্ঠায় ফর্ম প্রদর্শন করার আগে স্থাপন করা উচিত.
// функция загрузки изображения function ImageUpload($temp_path, $temp_name){ // получаем параметры изображения list($temp_width, $temp_height, $temp_type) = getimagesize($temp_path); // если тип определить не получилось, то возвращаем FALSE if ($temp_type === NULL) return false; // если тип загружаемого файла не GIF, JPEG, PNG switch ($temp_type){ case 1: break; case 2: break; case 3: break; default: return false; } // пути для сохранения $upload_image_path = UPLOADED_IMAGE_DESTINATION . $temp_name; $watermark_image_path = WATERMARK_IMAGE_DESTINATION . preg_replace("/\\.[^\\.]+$/", ".jpg", $temp_name); // загружаем исходное изображение move_uploaded_file($temp_path, $_SERVER["DOCUMENT_ROOT"].$upload_image_path); // создаем копию изображения и добавляем водяной знак $result = AddWaterMark($_SERVER["DOCUMENT_ROOT"].$upload_image_path, $_SERVER["DOCUMENT_ROOT"].$watermark_image_path); // возвращаем путь к файлу return ($result === false ? false: array($upload_image_path, $watermark_image_path)); } // функция добавления водяного знака function AddWaterMark($source_image_path, $result_image_path){ // получаем размеры и тип исходного изображения list($source_image_width, $source_image_height, $source_image_type) = getimagesize($source_image_path); // останавливаем выполнение если не удалось определить тип if ($source_image_type === NULL) return false; // создаем ресурс изображения из исходной картинки switch ($source_image_type) { case 1: // картинка *.gif $source_image = imagecreatefromgif($source_image_path); break; case 2: // картинка *.jpeg, *.jpg $source_image = imagecreatefromjpeg($source_image_path); break; case 3: // картинка *.png $source_image = imagecreatefrompng($source_image_path); break; default: return false; // в ином случае не делаем ничего } // создаем ресурс изображения для нашего водяного знака $watermark_image = imagecreatefrompng($_SERVER["DOCUMENT_ROOT"].WATERMARK_OVERLAY_IMAGE); // получаем размеры $watermark_width = imagesx($watermark_image); $watermark_height = imagesy($watermark_image); // параметры наложения с прозрачным фоном imagealphablending($source_image, true); imagesavealpha($source_image, true); // копирование и наложение знака на исходное изображение imagecopy($source_image, $watermark_image, $source_image_width - $watermark_width, $source_image_height - $watermark_height, 0, 0, $watermark_width, $watermark_height); // сохранение результата imagejpeg($source_image, $result_image_path, WATERMARK_OUTPUT_QUALITY); // очистка всех временных ресурсов imagedestroy($source_image); imagedestroy($watermark_image); } ?>
দুটি মূল ফাংশন, একটির সাহায্যে ছবিটি সার্ভারে আপলোড করা হয়, অন্যটির সাহায্যে একটি জলছাপ প্রয়োগ করা হয়। সম্ভবত, ফাংশনগুলির মন্তব্যগুলি আরও বিশদে বর্ণনা করা হয়েছে, এবং এখানে এটি লিখতে অতিরিক্ত হবে।
আপনি যদি ইমেজ এডিটরদের সাথে বিরক্ত না করে একটি ফটোতে একটি ওয়াটারমার্ক যোগ করতে চান বা সার্ভারে ফটো আপলোড করার সময় এটি যোগ করতে চান, তাহলে এই টিউটোরিয়ালটি আপনার জন্য।
এই টিউটোরিয়ালে, আমি আপনাকে দেখাব কিভাবে আসল ইমেজ পরিবর্তন না করে ফ্লাইতে একটি ইমেজে একটি ওয়াটারমার্ক যোগ করতে হয়। প্রথমত, আপনার ওয়াটারমার্ক হিসাবে ব্যবহার করার জন্য আপনার একটি চিত্রের প্রয়োজন হবে।
তারপর আমরা ফাইল হেডার গঠন করি:
// এই লাইনটি ব্রাউজারকে বলবে যে আমরা একটি jpg ইমেজ হেডার ("content-type: image/jpeg") পাস করছি;
তারপরে আমরা একটি png ইমেজ তৈরি করি এবং এর মাত্রা পাই:
// png ফরম্যাটে একটি ওয়াটারমার্ক তৈরি করুন $watermark = imagecreatefrompng("watermark.png"); // প্রস্থ এবং উচ্চতা পান $watermark_width = imagesx($watermark); $watermark_height = imagesy($watermark);
আমরা মূল ছবির সাথে একই কাজ করব, তবে শুধুমাত্র jpg ফরম্যাটে। এটি একটি ফর্মের মাধ্যমে আপলোড করা ফটোগুলির জন্য সাধারণ৷ আমরা নিম্নলিখিত হিসাবে এগিয়ে যান:
// একটি jpg ছবি তৈরি করা $image_path = "original.jpg"; $image = imagecreatefromjpeg($image_path); // ছবির সাইজ পান $size = getimagesize($image_path);
এখন আমাদের ছবিটিতে একটি জলছাপ স্থাপন করতে হবে:
// নীচে ডানদিকে একটি জলছাপ রাখুন। ইন্ডেন্ট 5px $dest_x = $size - $watermark_width - 5; $dest_y = $size - $watermark_height - 5;
এর পরে, আসুন উভয় চিত্রের জন্য মিশ্রণের বিকল্পগুলি সেট আপ করি:
ইমেজ অ্যালফ্যালেন্ডিং($ image, true); imagealphablending($watermark, true);
অবশেষে আমরা পরামিতি ব্যবহার করে একটি নতুন চিত্র তৈরি করি:
// একটি নতুন ইমেজ ইমেজকপি তৈরি করুন($image, $watermark, $dest_x, $dest_y, 0, 0, $watermark_width, $watermark_height); imagejpeg($ image);
নিজের পরে পরিষ্কার করা গুরুত্বপূর্ণ:
// মেমরি ইমেজ ডিস্ট্রয় মুক্ত করুন($ image); imagedestroy($watermark);
ওয়াটারমার্কের স্বচ্ছতা সামঞ্জস্য করতে আপনি ফটোশপ ব্যবহার করতে পারেন।
যে সব তত্ত্ব সঙ্গে. এখন একটি বাস্তব প্রকল্পে আমাদের জ্ঞান প্রয়োগ করা যাক। এই সব একটি ফাইল সংরক্ষণ করা আবশ্যক. উদাহরণস্বরূপ, বলা হয় watermark.php
হেডার ("কন্টেন্ট-টাইপ: ইমেজ/জেপিইজি"); // GET $image = $_GET["image"] এর মাধ্যমে ছবির নাম পান; // একটি ওয়াটারমার্ক তৈরি করুন $watermark = imagecreatefrompng("watermark.png"); // ওয়াটারমার্কের উচ্চতা এবং প্রস্থ পান $watermark_width = imagesx($watermark); $watermark_height = imagesy($watermark); // মূল ছবি থেকে একটি jpg তৈরি করুন $image_path = "/path/to/image/folder/"। $ছবি; $image = imagecreatefromjpeg($image_path); //যদি কিছু ভুল হয়ে যায় যদি ($image === মিথ্যা) ( ফেরত মিথ্যা; ) $size = getimagesize($image_path); // ছবিতে একটি ওয়াটারমার্ক রাখুন $dest_x = $size - $watermark_width - 5; $dest_y = $size - $watermark_height - 5; imagealphablending($image, true); imagealphablending($watermark, true); // একটি নতুন ইমেজ ইমেজকপি তৈরি করুন($image, $watermark, $dest_x, $dest_y, 0, 0, $watermark_width, $watermark_height); imagejpeg($ image); // মেমরি ইমেজ ডিস্ট্রয় মুক্ত করুন($ image); imagedestroy($watermark);
এখন, আসল চিত্র পরিবর্তন না করে একটি জলছাপ সহ একটি ফটো দেখানোর জন্য, নিম্নলিখিত কোডটি ব্যবহার করুন।
ওয়েবসাইটের মালিকরা (ফোরাম, বার্তা বোর্ড, ইত্যাদি) প্রায়শই সাইটের সমস্ত বড় ছবিতে ওয়াটারমার্ক তৈরি করার সমস্যার মুখোমুখি হন।
অবশ্যই, আপনি প্রতিটি ছবিতে ম্যানুয়ালি একটি ওয়াটারমার্ক তৈরি করে এই সমস্যাটি সমাধান করতে পারেন, তবে, প্রথমত, এটি অনেক সময় নেয় এবং দ্বিতীয়ত, একটি ওয়াটারমার্ক সহ এবং ছাড়াই ছবির দুটি সংস্করণ সংরক্ষণ করা প্রয়োজন।
এই সমস্যার একটি সমাধান হতে পারে সাইট ভিজিটরের কাছে পাঠানোর আগে চিত্রটিতে একটি জলছাপকে গতিশীলভাবে প্রয়োগ করা।
ইন্টারনেটে এই সমস্যার সমাধান দুটি ফাইলের আকারে রয়েছে, যার বিষয়বস্তু নীচে দেওয়া হল।
".htaccess" ফাইলের সোর্স কোড
DirectoryIndex index.php RewriteEngine অন RewriteCond %(REQUEST_FILENAME) -f রিরাইট রুল ^(.*)$ /watermark/_watermark.php
"_watermark.php" ফাইলের সোর্স কোড
250) && ($info_o > 250)) ( // আলফা চ্যানেল ছাড়া ছবির জন্য // ফাংশনের শেষ প্যারামিটার হল ওয়াটারমার্ক ইমেজ কপিমার্জের অস্বচ্ছতার ডিগ্রি($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) ( কেস 1 : imageGIF($out); কেস 2: imageJPEG($out);
imageDestroy($original);
imageDestroy($watermark);
সত্য ফিরে ) ?>
সমাধানটি নিচের দিকে ফুটে ওঠে: ".htaccess" ফাইলটি ইমেজ ফাইলগুলির সাথে ডিরেক্টরিতে স্থাপন করা হয়। এটি ছাড়াও, সার্ভারে একটি "ওয়াটারমার্ক" ফোল্ডার তৈরি করা হয়েছে, যেখানে একটি স্ক্রিপ্ট ফাইল "_watermark.php" এবং প্রকৃত ওয়াটারমার্ক ফাইল "watermark.png" রয়েছে।
একই সময়ে, ইন্টারনেটে পাওয়া আসল সংস্করণের তুলনায়, আমি উভয় টেক্সট ফাইলে ছোটখাটো পরিবর্তন করেছি।
এই সমস্যা এড়াতে, আমি সাইটের রুট ডিরেক্টরিতে একটি "ওয়াটারমার্ক" ফোল্ডার তৈরি করার এবং প্রতিবার পরিবর্তন না করেই ইমেজ ডিরেক্টরিতে একটি ".htaccess" ফাইল স্থাপন করার পরামর্শ দিই। এই ক্ষেত্রে, ওয়াটারমার্ক বা স্ক্রিপ্ট পরিবর্তন করতে, আমাদের সাইটে শুধুমাত্র একটি জায়গায় পরিবর্তন করতে হবে। এই ক্ষেত্রে, আপনি বিভিন্ন “.htaccess” ফাইল থেকে বিভিন্ন স্ক্রিপ্টে উল্লেখ করে ছবি সহ বিভিন্ন ফোল্ডারের জন্য বিভিন্ন ওয়াটারমার্ক তৈরি করতে পারেন, যেমন “_watermark-1.php”, “_watermark-2.php” ইত্যাদি।
সুতরাং, সংক্ষেপে, আমরা বলতে পারি যে সাইটের সমস্ত ছবিতে ওয়াটারমার্ক প্রয়োগ করতে, আপনাকে নীচে সংযুক্ত আর্কাইভটি ডাউনলোড করতে হবে, এটি আনপ্যাক করতে হবে, সাইটের রুট ডিরেক্টরিতে "ওয়াটারমার্ক" ফোল্ডারটি স্থাপন করতে হবে, ওয়াটারমার্ক ফাইলটি প্রতিস্থাপন করতে হবে " watermark.png” এটিতে আপনার নিজের সাথে, এবং সেই সাইট ডিরেক্টরিগুলিতে ".htaccess" ফাইলটি রাখুন, যে ছবিগুলি থেকে ওয়াটারমার্ক করা উচিত।
আপনি এখানে সমস্ত প্রয়োজনীয় ফাইল ধারণকারী সংরক্ষণাগার ডাউনলোড করতে পারেন
আপনি যখন ইন্টারনেটে আপনার ছবি এবং ভিডিও প্রকাশ করেন তখন আপনি একটি বড় ঝুঁকি নেন, কারণ আপনার সামগ্রী সহজেই অন্যান্য শত শত সংস্থানে অনুলিপি করা যেতে পারে। একটি খবরের গল্পের জন্য আপনার ছবি খুঁজে পাওয়া খুব ভালো হবে না, উদাহরণস্বরূপ, যেটির উপর আপনি কঠোর পরিশ্রম করেছেন, উত্সটি নির্দেশ না করে অন্য সাইটে, অর্থাৎ আপনার সাইট, তাই হবে? মৃদু করে বললে, আপনার মন খারাপ হবেই, আর খবরের জন্য এটা একটা সাধারণ ছবি না হলেও ফটোশপে একটা জটিল কাজ হলে, আপনি রাগ করবেন, তা বলার অপেক্ষা রাখে না! তাই আপনি আপনার গ্রাফিক্স রক্ষা করতে কি করতে পারেন?
ইন্টারনেটে ছবি বা ভিডিওর কপিরাইট রক্ষা করার জন্য, একটি ডিজিটাল ওয়াটারমার্ক বা ডিজিটাল ওয়াটারমার্ক সাধারণত সুবিধার জন্য ব্যবহার করা হয়। এটি রক্ষা করার জন্য প্রতিটি আপলোড করা ছবিতে একটি ডিজিটাল স্বাক্ষর সংযুক্ত করুন। ডিজিটাল প্রদর্শনী কেন্দ্র হতে পারে আপনার ওয়েবসাইট বা কোম্পানির লোগো, সুন্দর এবং নান্দনিকভাবে আপলোড করা ছবিতে স্থাপন করা।
প্রথমে ধ্রুবক আকারে প্রয়োজনীয় সেটিংস সম্বলিত একটি ফাইল তৈরি করা যাক - /config.php:
সংজ্ঞায়িত করুন("WATERMARK_OVERLAY_IMAGE", "/develop/images/watermark.png"); // আপনার কেন্দ্রীয় প্রদর্শনী হলের পথ সংজ্ঞায়িত ("WATERMARK_OUTPUT_QUALITY", 100); // ডিজিটাল ভিডিও রেকর্ডিং থেকে ফলাফলের চিত্রের গুণমান। মনে রাখবেন যে গুণমান সরাসরি ফাইলের আকারকে প্রভাবিত করে। সংজ্ঞায়িত করুন("UPLOADED_IMAGE_DESTINATION", "/develop/folder1/"); // মূল লোড করা চিত্রগুলির অবস্থানের পথ ("WATERMARK_IMAGE_DESTINATION", "/develop/folder2/"); // ওভারলেড ডিজিটাল তরঙ্গরূপ সহ চিত্রগুলির পথ
/*Функция добавления водяного знака на исходное изображение*/ function AddWaterMark($source_image_path, $result_image_path) { // Получаем ширину, высоту и тип исходного изображения list($source_image_width, $source_image_height, $source_image_type) = getimagesize($source_image_path); // Если по каким, то причинам неопределн тип, нам не стоит выполнять какие-либо действия с водяным знаком, по скольку это не картинка вовсе if ($source_image_type === NULL) { return false; } // Создаем, так называемый ресурс изображения из исходной картинки в зависимости от типа исходной картинки switch ($source_image_type) { case 1: // картинка *.gif $source_image = imagecreatefromgif($source_image_path); break; case 2: // картинка *.jpeg, *.jpg $source_image = imagecreatefromjpeg($source_image_path); break; case 3: // картинка *.png $source_image = imagecreatefrompng($source_image_path); break; default: return false; // Если картинка другого формата, или не картинка совсем, то опять же не стоит делать, что либо дальше с водяным знаком } // Создаем ресурс изображения для нашего водяного знака $watermark_image = imagecreatefrompng($_SERVER["DOCUMENT_ROOT"].WATERMARK_OVERLAY_IMAGE); // Получаем значения ширины и высоты $watermark_width = imagesx($watermark_image); $watermark_height = imagesy($watermark_image); // Наложение ЦВЗ с прозрачным фоном imagealphablending($source_image, true); imagesavealpha($source_image, true); // Самая важная функция - функция копирования и наложения нашего водяного знака на исходное изображение imagecopy($source_image, $watermark_image, $source_image_width - $watermark_width, $source_image_height - $watermark_height, 0, 0, $watermark_width, $watermark_height); // Создание и сохранение результирующего изображения с водяным знаком imagejpeg($source_image, $result_image_path, WATERMARK_OUTPUT_QUALITY); // Уничтожение всех временных ресурсов imagedestroy($source_image); imagedestroy($watermark_image); } /*Функция загрузки изображения*/ function ImageUpload($temp_path, $temp_name) { // Получаем параметры изображения list($temp_width, $temp_height, $temp_type) = getimagesize($temp_path); // Если тип определить не получилось, то возвращаем FALSE if ($temp_type === NULL) { return false; } // Если тип загружаемого файла не GIF, JPEG, PNG switch ($temp_type) { case 1: break; case 2: break; case 3: break; default: return false; } // Конечные пути для сохранения $upload_image_path = UPLOADED_IMAGE_DESTINATION . $temp_name; $watermark_image_path = WATERMARK_IMAGE_DESTINATION . preg_replace("/\\.[^\\.]+$/", ".jpg", $temp_name); // Загружаем исходное изображение move_uploaded_file($temp_path, $_SERVER["DOCUMENT_ROOT"].$upload_image_path); // Создаем копию изображения и добавляем водяной знак $result = AddWaterMark($_SERVER["DOCUMENT_ROOT"].$upload_image_path, $_SERVER["DOCUMENT_ROOT"].$watermark_image_path); // В случае, если все прошло упешно, возвращаем путь к файлу с ЦВЗ if ($result === false) { return false; } else { return array($upload_image_path, $watermark_image_path); } } ?>
ডাউনলোড এক্সিকিউট করা ফাইলে উপরে তৈরি করা ফাইলগুলো সংগ্রহ করা যাক /upload.php
অন্তর্ভুক্ত ("config.php"); অন্তর্ভুক্ত("functions.php"); $result = ইমেজ আপলোড($_FILES["userfile"]["tmp_name"], $_FILES["userfile"]["name"]); যদি ($result === মিথ্যা)( প্রতিধ্বনি "ডাউনলোড ব্যর্থ!";)
উদাহরণস্বরূপ, যদি ছবিটি লোড করা হয়:
তারপরে একটি ওয়াটারমার্ক ডাউনলোড এবং প্রয়োগ করার পরে, আপনি নিম্নলিখিত চিত্রটি পাবেন:
এই উদাহরণে, ডাউনলোড করা চিত্রটি একটি ফোল্ডারে সংরক্ষণ করা হয়েছে, এবং যে ছবিটিতে ডিজিটাল ওয়াটারমার্কটি অন্যটিতে সুপারইম্পোজ করা হয়েছিল, যাতে আপনার সর্বদা আসল চিত্রগুলিতে অ্যাক্সেস থাকে তবে অবশ্যই, এটি ডিজিটাল থেকে ছবি পোস্ট করা মূল্যবান। সাইটে প্রদর্শনী।
(178.4 KiB, 989 হিট)
কিছু ক্ষেত্রে, আপনার সাইটে আপনার পোস্ট করা ছবিগুলিতে ওয়াটারমার্ক যোগ করাই কোনো না কোনোভাবে তাদের চুরি থেকে রক্ষা করার একমাত্র উপায়। উপরন্তু, তারা বলে যে এই ধরনের জলছাপ অতিরিক্ত ট্র্যাফিক আকর্ষণ করে।
পিএইচপি ব্যবহার করে একটি ইমেজে একটি ওয়াটারমার্ক তৈরি করার অনেক উপায় আছে, কিন্তু আমার গ্রাহকের একটি অ্যাপ্লিকেশন পদ্ধতির প্রয়োজন ছিল যা তাকে যে কোনো সময়ে একটি নতুন ওয়াটারমার্ক পরিবর্তন করতে দেয়।
এটি সক্রিয় আউট হিসাবে, যেমন একটি সমাধান আছে।
এটি সাধারণত এমন লোকেরা ব্যবহার করে যারা বেশিরভাগ গ্রাফিক সামগ্রী সহ ওয়েবসাইট তৈরি করে।
একটি ওয়াটারমার্ক পদ্ধতি নির্বাচন করা হচ্ছে
এই সমস্ত জগাখিচুড়ি বাস্তবায়নের সমস্যা হল কর্মক্ষমতা এবং নমনীয়তার মধ্যে ওয়াটারমার্ক কীভাবে প্রয়োগ করা যায় তা বেছে নেওয়া। এমন কোন আদর্শ সমাধান নেই যা সবার জন্য উপযুক্ত। এই কারণে অনেক বাস্তবায়ন আছে।
আমার ক্ষেত্রে, গ্রাহক যেকোনো সময় এবং পরিবর্তে পুনরায় ব্র্যান্ড করার অধিকার সংরক্ষণ করে "শিং এবং খুর"লিখুন "খর এবং শিং". আপনার বেছে নেওয়া ওয়াটারমার্কিং পদ্ধতিটিও এটি সহ্য করা উচিত।
এখানে বর্ণিত ওয়াটারমার্কিং প্রযুক্তির সারমর্ম হল প্রতিবার একটি ছবি লোড করার সময় এই চিহ্নটি যোগ করা। হ্যাঁ, এই পদ্ধতিটি বেশ কয়েকটি সীমাবদ্ধতা বহন করে যা কার্যকারিতাকে উল্লেখযোগ্যভাবে প্রভাবিত করতে পারে, কিন্তু তারা বলে, গ্রাহক সর্বদা সঠিক এবং সেইজন্য যদি সেগুলি। টাস্কটির জন্য গতিশীলভাবে একটি ওয়াটারমার্ক প্রয়োগ করা প্রয়োজন, তারপরে এটিই করা দরকার।
যদি কারও কাছে সহজ উপায় থাকে তবে আপনাকে মন্তব্য করতে স্বাগতম। এটা শুনতে আকর্ষণীয় হবে.
কিছু কোড উপস্থাপন করার আগে, আমি সুবিধাগুলি বর্ণনা করতে চাই, পাশাপাশি একটি কাজের উদাহরণ দিতে চাই।
সুবিধা:
- আপনি দিনে কমপক্ষে 500 বার ওয়াটারমার্ক পরিবর্তন করতে পারেন;
- যেকোন সিএমএসে মোতায়েন করা যেতে পারে (এটি কোনোভাবেই এর সাথে আবদ্ধ নয়)।
অসুবিধা:
- হোস্টিং এর কর্মক্ষমতা উপর নির্ভর করে (যদি আপনার অনেক ছবি থাকে বা সেগুলি উচ্চ রেজোলিউশনের হয়, এটি সার্ভারে একটি উল্লেখযোগ্য লোড রাখতে পারে);
- একটি অনুসন্ধিৎসু মন এখনও আপনার জলছাপ অপসারণ করতে সক্ষম হবে.
উপসংহার:ওয়াটারমার্ক সহ অল্প সংখ্যক ছবি পোস্ট করার জন্য, এই পদ্ধতিটি নিখুঁত, তবে আপনি যদি একটি ফটো গ্যালারি খুলতে যাচ্ছেন, তবে কম ভারী লোড হওয়া কিছু সন্ধান করা আরও ভাল হবে।
উদাহরণ
পিএইচপি ব্যবহার করে একটি ওয়াটারমার্ক বাস্তবায়ন করা
প্রতিশ্রুতি অনুযায়ী, এর জন্য আপনার কোন বিশেষ জ্ঞানের প্রয়োজন নেই, আপনাকে করতে হবে:
- ফাইল, যা সংরক্ষণাগারে রয়েছে এবং এটি আপনার সাইটের রুট ডিরেক্টরিতে রাখুন;
- আমরা সাইটের রুট ডিরেক্টরিতে একটি ওয়াটারমার্ক হিসাবে কাজ করবে এমন চিত্রটি রাখি এবং এটির নাম রাখি (আমার ক্ষেত্রে এটি একটি সাদা ব্রাশ স্ট্রোক, তাই লিঙ্কটি আপনার ব্রাউজারের পটভূমিতে দৃশ্যমান নাও হতে পারে)। ছবিটি অবশ্যই একটি PNG হতে হবে, যেহেতু এটির একটি স্বচ্ছ স্তর রয়েছে৷ আপনি যদি GIF ব্যবহার করতে চান তবে আপনাকে ফাইলটি সম্পাদনা করতে হবে image.php;
- যে জায়গায় আপনি ওয়াটারমার্ক সহ ছবিটি প্রদর্শন করতে চান সেখানে কোডটি রাখুন:
সেটাই। সবাই খুশি, আপনি এবং গ্রাহক উভয়.
অপারেশন