2012-01-06 13 views
6

मेरे पास आकार 88x31 के साथ एक छवि है और वास्तविक छवि का आकार बदलने के बिना इसे 100x100 बनाना चाहते हैं, लेकिन केवल इसके कैनवास/फ्रेम, शायद इसे केंद्र में कॉपी करके 100x100 आकार के साथ नई खाली सफेद छवि। कोई विचार यह कैसे करना है?PHP जीडी - छवि फ्रेम/कैनवास का आकार बदलना, लेकिन वास्तविक छवि

+0

पहिया पुनर्रचना करने के लिए वापस मत करो, मौजूदा कोड का उपयोग करें: https://github.com/avalanche123/Imagine, लेकिन अगर आप जोर देते हैं, वहाँ कि पहले से ही उत्तर दिया गया है इतने पर इसी तरह के सवाल की अधिकता है। –

+1

संभावित डुप्लिकेट [अन्य छवियों वाले जीडी के साथ एक तस्वीर बनाएं] (http://stackoverflow.com/questions/2933170/create-a-picture-with-gd-containing-other-images) –

+0

इमेजिन के साथ समस्या नामस्थान है समर्थन जो मेरे PHP फिलहाल नहीं है और मैं अभी तक अपग्रेड नहीं करना चाहता लेकिन धन्यवाद। – Marcin

उत्तर

7

सही विधि एक नई छवि बना सकते हैं और फिर इसे के बीच में पुराने चित्र को कॉपी (यह मानते हुए है आरंभिक चित्र एक JPEG और 100x100 से छोटी है) के लिए है:

$oldimage = imagecreatefromjpeg($filename); 
$oldw = imagesx($oldimage); 
$oldh = imagesy($oldimage); 

$newimage = imagecreatetruecolor(100, 100); // Creates a black image 

// Fill it with white (optional) 
$white = imagecolorallocate($newimage, 255, 255, 255); 
imagefill($newimage, 0, 0, $white); 

imagecopy($newimage, $oldimage, (100-$oldw)/2, (100-$oldh)/2, 0, 0, $old, $oldh); 
संबंधित मुद्दे