2012-02-26 14 views
10
$image_p = imagecreatetruecolor($new_width, $new_height); 
$image = imagecreatefromjpeg($filename); 
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height); 

मैं आकार बदलने वाली छवि को फ़ोल्डर/में कैसे सहेज सकता हूं? और मैं छवि प्रकार का पता कैसे लगा सकता हूं jpg/png/gif है?PHP सहेजें छवि imagecopyresampled

उत्तर

12

एक फाइल करने के लिए छवि को बचाने के लिए प्राप्त करने के लिए, आप इनमें से किसी का उपयोग कर सकते हैं: imagejpeg(), imagepng() , या imagegif(), आपके वांछित आउटपुट प्रारूप के आधार पर।

छवि प्रकार का पता लगाने के लिए, आप बस फ़ाइल के एक्सटेंशन की जांच कर सकते हैं और उस पर स्वयं आधार कर सकते हैं। हालांकि, कभी-कभी लोग छवि फ़ाइल का विस्तार मैन्युअल रूप से बदलते हैं, यह सोचते हुए कि वास्तव में छवि प्रकार बदलता है, इसलिए यह जांचना हमेशा एक अच्छा विचार है कि imagecreatefrom ने झूठी बजाय छवि संसाधन वापस कर दिया है या नहीं।

एक त्वरित तरीका है एक फ़ाइल की बस एक्सटेंशन वापस जाने के लिए के लिए:

$ext = pathinfo($path_to_file, PATHINFO_EXTENSION); 

Manual entry on pathinfo()

4

// Save the image as 'simpletext.jpg' 
imagejpeg($im, 'path/to/your/image.jpg'); 
// or another image 
imagepng($im, 'path/to/your/image.png'); 

उदाहरण देखें इस कोड

imagepng($iOut,'pic/mypic.png',3); 

& जोड़ने किसी बाहरी स्रोत से अपने खुद के चित्र प्रारूप प्राप्त करने के लिए इस कोड को

$link='http://example.com/example.png'; 
echo (substr ($link,strrpos ($link,".")+1)); 
1
$filename = 'path/to/original/file.xxx'; // where xxx is file type (jpg, gif, or png) 
$newfilename = 'path/to/resized/file.xxx'; // where xxx is file type (jpg, gif, or png) 
$path_parts = pathinfo($filename); 
if ($path_parts['extension'] == 'jpg') { 
    $image_p = imagecreatetruecolor($new_width, $new_height); 
    $image = imagecreatefromjpeg($filename); 
    imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height); 
    imagejpeg($image_p, $newfilename); 
} elseif ($path_parts['extension'] == 'gif') { 
    $image_p = imagecreatetruecolor($new_width, $new_height); 
    $image = imagecreatefromgif($filename); 
    imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height); 
    imagegif($image_p, $newfilename); 
} elseif ($path_parts['extension'] == 'png') { 
    $image_p = imagecreatetruecolor($new_width, $new_height); 
    $image = imagecreatefrompng($filename); 
    imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height); 
    imagepng($image_p, $newfilename); 
} else { 
     echo "Source file is not a supported image file type."; 
} 
+0

इसके पुनर्जीवित फ़ाइल के रूप में PNG फ़ाइल के साथ ठीक बस बनाने मुद्दा काम कर पारदर्शी होने की जरूरत है की आवश्यकता होगी। यह कैसे किया जा सकता है। –

3

के बाद आप आवेदन किया imagecopyresampled(), $dst_image अपनी छवि संसाधन पहचानकर्ता हो जाएगा।

बस imagecopyresampled() फ़ंक्शन को लागू करने से स्वचालित रूप से फ़ाइल सिस्टम में इसे सहेज नहीं आता है।

तो आप इसे बचाने के लिए, कार्यों imagejpeg() से एक का उपयोग, imagepng()

// Output 
imagejpeg($dst_image, 'new-image.jpg', 100); 
संबंधित मुद्दे