পিএইচপি দিয়ে সহজে বানাও ওয়াটারমার্ক - ৩ [GET array দিয়ে ইমেজ এবং ওয়াটারমার্ক দুইটি ফাইলই ক্যাচ করা]

আসসালামু আলাইকুম,
এরই মধ্যে দুটি পদ্ধতি দেখিয়ে ফেলেছি। সেগুলো এখানে পাবেন।
  1. পিএইচপি দিয়ে সহজে বানাও ওয়াটারমার্ক - ১
  2. পিএইচপি দিয়ে সহজে বানাও ওয়াটারমার্ক - ২
এটাই হয়ত আমার পক্ষ থেকে পিএইচপি ইমেজ ওয়াটারমার্কিং এর শেষ পর্ব। তবে জিআর+ থেকে নয়। এরপরেও হয়তো আরও ভালো স্ক্রিপ্ট আসবে এই সম্পর্কে।

এবার আসব আমার তিন নাম্বার স্ক্রিপ্টে।
এখানে আমরা GET এরে দিয়ে ওয়াটারমার্ক ও মুল ইমেজ দুইটাই একসাথে ইনপুট দিতে পারবো।
মানে অনেকটা এভাবে
 localhost/water2/index.php?mainfile=image.jpg&watermark=logo.png
তো আমাদের প্রথমে একটা ফাইল আপলোড স্ক্রিপ্ট দিয়ে ফাইল আপলোড করে নিতে হবে। এখন আমি ফাইল আপলোড পিএইচপি স্ক্রিপ্ট নিয়ে আলোচনা করবো না।
তাই আমরা সরাসরি ডিরেক্টরিতে ইমেজ ফাইল রেখে নিবো।

পিএইচপি প্রোগ্রাম রান করাতে হলে অবশ্যই ওয়েব সার্ভার লাগবে। কিন্তু ওয়েব সার্ভার থাকতে হলে লাগবে টাকা। টাকা যদি থাকে বা ওয়েবসারভার কেনা থাকলে এটা রান করা কোনো ব্যাপার না, ফাইল আপলোড করে ব্রাউজার দিয়ে খুললেই হবে।
আমাদের জন্য আমরা একটা অফলাইনে অ্যাপাচি সার্ভার সিমিউলেট করতে হবে। এর নাম xampp. 
ডাউনলোড করে নাও এখান থেকে https://www.apachefriends.org

এখন সেটআপ শেষ হলে সি ড্রাইভে গিয়ে xampp ফোল্ডারে যাও এবং htdocs ফাইল ফোল্ডার ওপেন কর।
সেখানে একটা ফাইল খুলো watermark নামে বা যেকোনো নামে।

এখন ব্রাউজার খুলো।

অ্যাড্রেস বারে লিখো http://localhost/"তোমার দেওয়া ফোল্ডারের নাম"
আমার ক্ষেত্রে water2
http://localhost/water2
এবার ঐ ফোল্ডারে ওয়াটারমার্ক ডট  পিএইচপি ফাইল তৈরি কর কোন টেক্সট ফাইল এডিটর দিয়ে।




এবার ঐ ডিরেক্টরিতে index.php তৈরি করে নিচের কোড লিখে সেভ কর,

<?php

  // loads a png, jpeg or gif image from the given file name
  function imagecreatefromfile($image_path) {
    // retrieve the type of the provided image file
    list($width, $height, $image_type) = getimagesize($image_path);
    // select the appropriate imagecreatefrom* function based on the determined
    // image type
    switch ($image_type)
    {
      case IMAGETYPE_GIF: return imagecreatefromgif($image_path); break;
      case IMAGETYPE_JPEG: return imagecreatefromjpeg($image_path); break;
      case IMAGETYPE_PNG: return imagecreatefrompng($image_path); break;
      default: return ''; break;
    }

  }
  // load source image to memory
  $image = imagecreatefromfile($_GET['image']);
  if (!$image) die('Unable to open image');
  // load watermark to memory
  $watermark = imagecreatefromfile($_GET['watermark']);
  if (!$image) die('Unable to open watermark');

  // calculate the position of the watermark in the output image (the
  // watermark shall be placed in the lower right corner)
  $watermark_pos_x = imagesx($image) - imagesx($watermark) - 8;
  $watermark_pos_y = imagesy($image) - imagesy($watermark) - 10;
  // merge the source image and the watermark
  imagecopy($image, $watermark,  $watermark_pos_x, $watermark_pos_y, 0, 0,
    imagesx($watermark), imagesy($watermark));
  // output watermarked image to browser
  header('Content-Type: image/jpeg');
  imagejpeg($image, NULL, 100);  // use best image quality (100)
  // remove the images from memory
  imagedestroy($image);
  imagedestroy($watermark);
?> 

হলুদ হাইলাইট করা 100 হল ইমেজের অপাসিটি। মানে রঙের গাঢ়ত্ব। মানে ওয়াটারমার্ক ইমেজ কতো গাড় হবে সেটাই এটা ঠিক করে। এখানে ১০০ মানে ১০০%
লাল কালি করা অংশগুলো ইমেজের ফরম্যাট চেক করে এবং সেই অনুজায়ি হেডার ফাইল সুইচ করে বা বদলে দেয়।

এবার index.php এর  সাথে একই ডিরেক্টরিতে logo.png এবং কাঙ্ক্ষিত সকল ছবি রেখে দিয়ে ব্রাউজার দিয়ে চালু করি এভাবে।
http://localhost/water2/index.php?image=Penguins.png&watermark=logo.png


আমি এখন GET দিয়ে করতে পারছি।কিন্ত FILES দিয়ে করতে পারছি না। FILES array দিয়ে করতে পারলে ইমেজ আপলোড করে ওয়াটারমার্ক করা যেতো।এজন্যে এখন যেসব ছবি ওয়াটার মার্ক করবে, সেগুলো index.php এর সাথে একই ফোল্ডারে রাখতে হবে। ফাইল আপলোড অপশন অ্যাড করা গেলে আমি আবার পোস্ট করে জানিয়ে দেব।কেউ পারলে অবশ্যই আমাকে জানাবে এবং ইনবক্স করবে।

আমি ফেসবুকে আছি,



Related Posts
Previous
« Prev Post

মোট পাতাদর্শিত