CodeIgniter ফ্রেমওয়ার্কের মাধ্যমে ইমেজ ম্যানিপুলেশন যেমন Resizing, Cropping, Rotating, এবং Watermarking সহজেই করা যায়। এটি করার জন্য CodeIgniter বিল্ট-ইন Image Manipulation Library প্রদান করে।
Image Manipulation লাইব্রেরি লোড করা
লাইব্রেরি ব্যবহারের জন্য আপনাকে এটি লোড করতে হবে।
$this->load->library('image_lib');
Image Resizing (ইমেজের আকার পরিবর্তন)
উদাহরণ: একটি ইমেজ রিসাইজ করা
Controller কোড:
public function resizeImage() { // Config সেট করুন $config['image_library'] = 'gd2'; $config['source_image'] = './uploads/sample.jpg'; // মূল ইমেজ $config['create_thumb'] = FALSE; $config['maintain_ratio'] = TRUE; $config['width'] = 200; // নতুন প্রস্থ $config['height'] = 200; // নতুন উচ্চতা // লাইব্রেরি লোড এবং কনফিগারেশন সেট করা $this->load->library('image_lib', $config); // রিসাইজ করার জন্য লাইব্রেরি চালু if ($this->image_lib->resize()) { echo "Image resized successfully!"; } else { echo $this->image_lib->display_errors(); } }- ইমেজ ফাইল অবস্থান: আপনার ইমেজ ফাইলটি
./uploads/sample.jpgডিরেক্টরিতে থাকতে হবে।
Image Cropping (ইমেজ কাটিং)
উদাহরণ: একটি ইমেজ ক্রপ করা
Controller কোড:
public function cropImage() { // Config সেট করুন $config['image_library'] = 'gd2'; $config['source_image'] = './uploads/sample.jpg'; // মূল ইমেজ $config['maintain_ratio'] = FALSE; $config['x_axis'] = 50; // X-অক্ষ থেকে শুরু $config['y_axis'] = 50; // Y-অক্ষ থেকে শুরু $config['width'] = 200; // ক্রপ প্রস্থ $config['height'] = 200; // ক্রপ উচ্চতা // লাইব্রেরি লোড এবং কনফিগারেশন সেট করা $this->load->library('image_lib', $config); // ক্রপ করার জন্য লাইব্রেরি চালু if ($this->image_lib->crop()) { echo "Image cropped successfully!"; } else { echo $this->image_lib->display_errors(); } }
Image Rotating (ইমেজ ঘোরানো)
উদাহরণ: একটি ইমেজ ঘোরানো
Controller কোড:
public function rotateImage() { // Config সেট করুন $config['image_library'] = 'gd2'; $config['source_image'] = './uploads/sample.jpg'; // মূল ইমেজ $config['rotation_angle'] = '90'; // ঘোরানোর কোণ (90, 180, 270) // লাইব্রেরি লোড এবং কনফিগারেশন সেট করা $this->load->library('image_lib', $config); // রোটেট করার জন্য লাইব্রেরি চালু if ($this->image_lib->rotate()) { echo "Image rotated successfully!"; } else { echo $this->image_lib->display_errors(); } }
Image Watermarking (ওয়াটারমার্ক যোগ করা)
উদাহরণ: একটি ইমেজে টেক্সট ওয়াটারমার্ক যোগ করা
Controller কোড:
public function watermarkImage() { // Config সেট করুন $config['image_library'] = 'gd2'; $config['source_image'] = './uploads/sample.jpg'; // মূল ইমেজ $config['wm_text'] = 'Sample Watermark'; // টেক্সট ওয়াটারমার্ক $config['wm_type'] = 'text'; $config['wm_font_path'] = './system/fonts/texb.ttf'; // ফন্ট ফাইল $config['wm_font_size'] = '16'; $config['wm_font_color'] = 'ffffff'; // সাদা রঙ $config['wm_vrt_alignment'] = 'bottom'; $config['wm_hor_alignment'] = 'center'; // লাইব্রেরি লোড এবং কনফিগারেশন সেট করা $this->load->library('image_lib', $config); // ওয়াটারমার্ক যোগ করার জন্য লাইব্রেরি চালু if ($this->image_lib->watermark()) { echo "Watermark added successfully!"; } else { echo $this->image_lib->display_errors(); } }
লাইব্রেরি পুনঃআরম্ভ করা
যদি একাধিক ইমেজ প্রসেস করতে হয়, তবে প্রতিবার লাইব্রেরি রিসেট করুন:
$this->image_lib->clear();
Common Errors এবং সমাধান
- Error: GD2 বা ImageMagick Library মিসিং
- নিশ্চিত করুন যে আপনার সার্ভারে GD2 অথবা ImageMagick ইন্সটল রয়েছে।
- Error: Invalid File Path
source_imageএর পাথ সঠিক কিনা নিশ্চিত করুন।
- Error: Permission Denied
- ইমেজ ফোল্ডারের পারমিশন চেক করুন (Linux-এ
chmod 777ব্যবহার করতে পারেন)।
- ইমেজ ফোল্ডারের পারমিশন চেক করুন (Linux-এ
ইমেজ ম্যানিপুলেশন লাইব্রেরি Config অপশনসমূহ
| অপশন | বিবরণ |
|---|---|
image_library | ইমেজ প্রসেসিং লাইব্রেরি (যেমন: gd2, imagemagick) |
source_image | মূল ইমেজ ফাইলের পাথ |
new_image | প্রসেসড ইমেজ সংরক্ষণের পাথ |
maintain_ratio | অনুপাত বজায় রাখবে কিনা (TRUE/FALSE) |
width | ইমেজের প্রস্থ |
height | ইমেজের উচ্চতা |
rotation_angle | ঘোরানোর কোণ (যেমন: 90, 180) |
wm_text | ওয়াটারমার্ক টেক্সট |
wm_type | ওয়াটারমার্ক টাইপ (টেক্সট বা ইমেজ) |
সারাংশ
CodeIgniter-এর Image Manipulation Library ব্যবহার করে আপনি সহজেই ইমেজ রিসাইজ, ক্রপ, রোটেট, এবং ওয়াটারমার্ক যুক্ত করতে পারেন। এটি ইমেজ প্রসেসিং-এর জন্য একটি শক্তিশালী এবং ব্যবহার-বান্ধব সমাধান প্রদান করে।
Read more