PHP में छवियों के साथ काम: GD और Imagick लाइब्रेरीज़ का अवलोकन
छवि प्रसंस्करण वेब डेवलपमेंट के सामान्य कार्यों में से एक है। PHP में ग्राफ़िक्स के साथ काम करने के लिए दो मुख्य लाइब्रेरीज़ हैं: GD (अंतर्निहित) और Imagick (ImageMagick पर रैपर)। इस लेख में हम उनकी क्षमताओं, स्थापना और व्यावहारिक उदाहरणों पर चर्चा करेंगे।
GD लाइब्रेरी
GD — PHP का मानक एक्सटेंशन है, जो अधिकांश होस्टिंग पर उपलब्ध है। यह JPEG, PNG, GIF, WEBP प्रारूपों में छवियाँ बनाने, बदलने और सहेजने की अनुमति देता है।
स्थापना
Ubuntu/Debian में:
sudo apt install php-gdsudo systemctl restart apache2Windows में — 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 पुस्तकालय में भी
Swift में डेटाबेस माइग्रेशन: iOS/macOS के लिए टूल्स और तरीके
Go (Golang) के लिए Redis क्लाइंट: go-redis और redigo - संपूर्ण गाइड
कोटलिन में भू-स्थान और मानचित्र: पुस्तकालय, उपकरण और उदाहरण
Swift में XML के साथ कार्य: डेटा का पार्सिंग, निर्माण और प्रसंस्करण (iOS/macOS)