PHP में छवियों के साथ काम: GD और Imagick लाइब्रेरीज़

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

PHP में छवियों के साथ काम: GD और Imagick लाइब्रेरीज़ का अवलोकन



छवि प्रसंस्करण वेब डेवलपमेंट के सामान्य कार्यों में से एक है। PHP में ग्राफ़िक्स के साथ काम करने के लिए दो मुख्य लाइब्रेरीज़ हैं: GD (अंतर्निहित) और Imagick (ImageMagick पर रैपर)। इस लेख में हम उनकी क्षमताओं, स्थापना और व्यावहारिक उदाहरणों पर चर्चा करेंगे।



GD लाइब्रेरी

GD — PHP का मानक एक्सटेंशन है, जो अधिकांश होस्टिंग पर उपलब्ध है। यह JPEG, PNG, GIF, WEBP प्रारूपों में छवियाँ बनाने, बदलने और सहेजने की अनुमति देता है।



स्थापना

Ubuntu/Debian में:

sudo apt install php-gdsudo systemctl restart apache2


Windows में — php.ini में extension=gd पंक्ति को अनकमेंट करें।



GD के मुख्य फ़ंक्शन

  • imagecreatefromjpeg(), imagecreatefrompng() — छवि लोड करना
  • imagesx(), imagesy() — चौड़ाई और ऊँचाई प्राप्त करना
  • imagecopyresampled() — रीसैंपलिंग के साथ स्केलिंग
  • imagefilter() — फ़िल्टर लगाना (धुंधला, नेगेटिव)
  • imagettftext() — TrueType फ़ॉन्ट के साथ टेक्स्ट
  • imagejpeg(), imagepng() — परिणाम सहेजना


उदाहरण 1: छवि का आकार बदलना

<?php$src = 'photo.jpg';$dest = 'thumb.jpg';$newWidth = 300;

// मूल छवि लोड करें$img = imagecreatefromjpeg($src);$width = imagesx($img);$height = imagesy($img);

// नई ऊँचाई आनुपातिक रूप से गणना करें$newHeight = intval($height * $newWidth / $width);

// नई छवि बनाएँ$thumb = imagecreatetruecolor($newWidth, $newHeight);imagecopyresampled($thumb, $img, 0, 0, 0, 0, $newWidth, $newHeight, $width, $height);

// सहेजेंimagejpeg($thumb, $dest, 85);imagedestroy($img);imagedestroy($thumb);echo "तैयार: $dest";?>


उदाहरण 2: वॉटरमार्क लगाना

<?php$mainImg = imagecreatefromjpeg('background.jpg');$watermark = imagecreatefrompng('logo.png');

// आकार प्राप्त करें$mW = imagesx($mainImg);$mH = imagesy($mainImg);$wW = imagesx($watermark);$wH = imagesy($watermark);

// स्थान — 10px मार्जिन के साथ निचला दायाँ कोना$dstX = $mW - $wW - 10;$dstY = $mH - $wH - 10;

// पारदर्शिता के साथ वॉटरमार्क कॉपी करेंimagecopy($mainImg, $watermark, $dstX, $dstY, 0, 0, $wW, $wH);

// सहेजेंimagepng($mainImg, 'result.png');imagedestroy($mainImg);imagedestroy($watermark);?>


Imagick लाइब्रेरी

Imagick — शक्तिशाली टूल ImageMagick पर ऑब्जेक्ट-ओरिएंटेड रैपर है। यह 200 से अधिक प्रारूपों, जटिल रूपांतरणों, PDF के साथ काम, एनिमेशन और रंग प्रोफ़ाइलों का समर्थन करता है।



स्थापना

sudo apt install imagemagick php-imagicksudo systemctl restart apache2


स्थापना की जाँच करें:

<?php phpinfo(); ?>

imagick अनुभाग खोजें।



मुख्य क्लास और विधियाँ

  • Imagick — छवि के साथ काम करने के लिए मुख्य क्लास
  • readImage() — फ़ाइल लोड करना
  • resizeImage() — आकार बदलना
  • cropImage() — क्रॉप करना
  • compositeImage() — छवियों को ओवरले करना
  • blurImage() — धुंधला करना
  • setImageFormat() — प्रारूप रूपांतरण


उदाहरण 3: स्केलिंग और क्रॉपिंग

<?php$image = new Imagick('photo.jpg');

// 800x600 तक स्केल करें, अनुपात बनाए रखें$image->resizeImage(800, 600, Imagick::FILTER_LANCZOS, 1, true);

// केंद्रीय भाग 400x400 क्रॉप करें$width = $image->getImageWidth();$height = $image->getImageHeight();$x = ($width - 400) / 2;$y

अनुशंसाएँ