पुरालेख कार्य के लिए

कैसे एकाधिक छवियाँ में एक छवि PHP का प्रयोग विभाजित करने

समारोह में, 26 अगस्त, 2008 को ShortLikeAFox द्वारा PHP पोस्ट

तो आप कई छोटे छवियों में एक बड़ी छवि को तोड़ना चाहते हो? कोई समस्या नहीं है. यह एक अस्पष्ट समस्या की तरह है, लेकिन लगता है मई वहाँ रहे हैं आप ऐसा करना चाहते था कई कारणों से. शायद तुम एक दृश्य स्लाइडिंग पहेली पैदा करना चाहता हूँ. या शायद तुम एक अद्वितीय WordPress विषय चल रहे हैं. या शायद तुम किसी तरह के एक महाविद्यालय का निर्माण करना चाहते हैं. यह वास्तव में तुम क्यों छोटे छवि में एक छवि को विभाजित करना चाहते हैं फर्क नहीं पड़ता, PHP इस कार्य को आसान बनाता है. Jpegs के साथ ही सौदे से नीचे का उदाहरण. छवियों के अन्य प्रकार से निपटने के लिए इस समारोह बदलने कि मुश्किल नहीं होगा.

<? PHP
/ / इस समारोह की एक संख्या में समान रूप से कॉलम और पंक्तियाँ आकार की एक छवि विभाजित होगा.
समारोह split_image ($ number_of_rows, $ number_of_cols, $ path_to_image, $ FILE_NAME) (

/ / $ number_of_rows = # तुम चाहते पंक्तियों की;
/ / $ number_of_cols = # तुम चाहते cols की
/ / $ path_to_image = छवि में, जैसे कुछ तो है इस फ़ोल्डर: / घर का रास्ता / सामग्री / उपयोगकर्ता नाम / html / सूची / अपलोड /
/ / $ FILE_NAME छवि के = फ़ाइल नाम: archery.jpg, आदि

/ विस्तार के लिए / पार्स पथ
$file_name); $ जानकारी = pathinfo ($ path_to_image. $ FILE_NAME);

/ / हम एक JPEG के साथ काम कर रहे हैं सुनिश्चित करें
($info[ 'extension' ]) == ‘jpg’ ) || ( strtolower ($info[ 'extension' ]) == ‘jpeg’ ) ){ ((strtolower ($ अगर जानकारी [ 'एक्सटेंशन']) == '' jpg) | | (strtolower ($ जानकारी [ 'एक्सटेंशन']) == 'jpeg)) (

/ / लोड छवि और छवि आकार मिल
); $ स्रोत = ( "($ path_to_image) ($ FILE_NAME)") imagecreatefromjpeg;
$ चौड़ाई = imagesx ($ स्रोत); / / की चौड़ाई खोजें
$ ऊंचाई = imagesy ($ स्रोत); / / ऊंचाई खोजें
$ segment_width = $ चौड़ाई / $ number_of_cols; / / व्यक्तिगत घटकों की चौड़ाई Determine
$ segment_height = $ ऊँचाई / $ number_of_rows; / / व्यक्तिगत घटकों की ऊंचाई Determine

($ = 0; $ कर्नल <$ number_of_cols कर्नल, $ के लिए कर्नल + +)
(

पंक्ति = 0 ($ के लिए; $ पंक्ति <$ number_of_rows, $ पंक्ति + +)
(

, $col, $row ); $ fn = sprintf ( "img% 02d_% 02d.jpg", $ कर्नल, $ पंक्ति);
); //I print the image name here, so that the process shows itself as it runs ( "$ fn") गूंज; / / मैं यहाँ है, तो यह है कि यह प्रक्रिया के रूप में ही दिखाता है छवि नाम प्रिंट रन
$ im = imagecreatetruecolor ($ segment_width, $ segment_height) @;
imagecopyresized ($ im, $ स्रोत, 0, 0, $ * $ segment_width, $ पंक्ति कर्नल * $ segment_height, $ segment_width, $ segment_height, $ segment_width, $ segment_height);
$ "=" test.jpg फ़ाइल;
/ / चित्र सहेजें
, 100 )) //The destination will be something like /home/content/c/h/d/images/$fn (imagejpeg ($ im, "घुसाएँ पर्यटन स्थल के यहां", 100)) / / गंतव्य जैसे कुछ / home / सामग्री / c / ज / घ जाएगा / images / $ fn अगर

गूंज ( "किया गया है! <br/>");

)

)

)

)

?>

कैसे थंबनेल छवियाँ PHP का उपयोग करने के लिए

कार्य में, ShortLikeAFox PHP द्वारा 22 जुलाई, 2008 को पोस्ट

तो तुम एक दिया छवि से थम्बनेल बनाने के लिए ... PHP यह काम आसान बना देता है चाहता हूँ. मैं पहले छवियाँ प्रयोक्ताओं प्रशासन की मदद से मैं एक साइट पर अपलोड से निपटने के लिए नीचे दिए गए समारोह लिखा. इस साइट पर अपलोड की गई छवियाँ jpegs, pngs, या gifs, इसलिए मैं सभी तीन से निपटने के लिए एक समारोह में लिखने के लिए किया जा सकता है. यह कोड मूलतः एक समारोह के बंद आधारित है webcheatsheet.com में मिला

कैसे करना है:

समारोह createThumbs ($ pathToImages, $ fname, $ pathToThumbs, $ thumbWidth)
(

/ विस्तार के लिए / पार्स पथ

$ जानकारी = pathinfo ($ pathToImages. $ fname);
/ / जारी सिर्फ अगर यह एक JPEG छवि है
($info['extension']) == ‘jpeg’) ) ((strtolower ($ अगर जानकारी [ 'एक्सटेंशन']) == '' jpg) | | (strtolower ($ जानकारी [ 'एक्सटेंशन']) == 'jpeg))
(

/ / लोड छवि और छवि आकार मिल
$ img = ( "($ pathToImages) ($ fname)") imagecreatefromjpeg;
$ चौड़ाई = imagesx ($ img);
$ ऊंचाई = imagesy ($ img);

/ / थंबनेल आकार की गणना
$ new_width = $ thumbWidth;
$ new_height = मंजिल ($ ऊंचाई * ($ thumbWidth / $ चौड़ाई));

/ / एक नया अस्थायी छवि बनाने
$ tmp_img = imagecreatetruecolor ($ new_width, $ new_height);

/ / कॉपी और पुरानी छवि का आकार नई छवि में
imagecopyresized ($ tmp_img, $ img, 0, 0, 0, 0, $ new_width, $ new_height, $ चौड़ाई, $ ऊंचाई);

/ / एक फ़ाइल में थंबनेल को बचाने
imagejpeg ($ tmp_img, "($ pathToThumbs) ($ fname)");

)

(strtolower ($ अगर जानकारी [ 'एक्सटेंशन']) == 'gif')
(

/ / लोड छवि और छवि आकार मिल
$ img = imagecreatefromgif ( "($ pathToImages) ($ fname)");
$ चौड़ाई = imagesx ($ img);
$ ऊंचाई = imagesy ($ img);

/ / थंबनेल आकार की गणना
$ new_width = $ thumbWidth;
$ new_height = मंजिल ($ ऊंचाई * ($ thumbWidth / $ चौड़ाई));

/ / एक नया अस्थायी छवि बनाने
$ tmp_img = imagecreatetruecolor ($ new_width, $ new_height);

/ / कॉपी और पुरानी छवि का आकार नई छवि में
imagecopyresized ($ tmp_img, $ img, 0, 0, 0, 0, $ new_width, $ new_height, $ चौड़ाई, $ ऊंचाई);

/ / एक फ़ाइल में थंबनेल को बचाने
imagegif ($ tmp_img, "($ pathToThumbs) ($ fname)");

)

(strtolower ($ अगर जानकारी [ 'एक्सटेंशन']) == 'png')
(

/ / लोड छवि और छवि आकार मिल
$ img = ( "($ pathToImages) ($ fname)") imagecreatefrompng;
$ width = imagesx ($ img);
$ ऊंचाई = imagesy ($ img);

/ / थंबनेल आकार की गणना
$ new_width = $ thumbWidth;
$ new_height = मंजिल ($ ऊंचाई * ($ thumbWidth / $ चौड़ाई));

/ / एक नया अस्थायी छवि बनाने
$ tmp_img = imagecreatetruecolor ($ new_width, $ new_height);

/ / कॉपी और पुरानी छवि का आकार नई छवि में
imagecopyresized ($ tmp_img, $ img, 0, 0, 0, 0, $ new_width, $ new_height, $ चौड़ाई, $ ऊंचाई);

/ / एक फ़ाइल में थंबनेल को बचाने
imagepng ($ tmp_img, "($ pathToThumbs) ($ fname)");

)

)

यह कैसे काम करता है

इस समारोह createThumbs चार बहस लेता है.

  • $ pathToImages -> छवि फ़ाइल यह इस: / घर / सामग्री / उपयोगकर्ता नाम / html / सूची / अपलोड की तरह लग रहे हो सकता है कुछ अंदर है, फ़ोल्डर का पथ /
  • $ fname -> इस फ़ाइलनाम: pic1.gif, johnny.jpg, आदि ...
  • $ pathToThumbs -> तुम्हें अंदर तुम ऐसा नहीं होने के लिए थंबनेल छवि चाहते फ़ोल्डर का रास्ता एक ही मार्ग के रूप में $ pathToImages होना यह चाहिए, क्योंकि थंबनेल छवि मूल छवि के रूप में एक ही नाम होगा.
  • $ thumbWidth -> इस चौड़ाई है कि आप पिक्सल में होना करने के लिए थंबनेल चाहते हैं.

एक महत्वपूर्ण ध्यान दें कि मैं यहाँ करना चाहिए कि इस समारोह में, फ़ाइल एक्सटेंशन की जाँच के अलावा, यह है कि छवि फ़ाइलों को कुछ भी नहीं दुर्भावनापूर्ण शामिल सुनिश्चित करने के लिए दूसरी जगह में कुछ भी नहीं है. फाइल createThumbs चूंकि () पहले से ही यह है कि फ़ाइलों को ठीक से छानबीन की गई है संभाला है अपलोड किया गया है के साथ काम करता है.

पहली बात createThumbs () है फोन pathinfo है (). pathinfo () एक सरणी में एक पथ के भागों टूटता है. क्योंकि हम ठीक से थम्बनेल बनाने के लिए फाइल एक्सटेंशन की जरूरत है यह हमारे लिए उपयोगी है. अगर हम एक jpeg के साथ काम कर रहे हैं अगली createThumbs () की जाँच को देखने के लिए. यदि मूल फ़ाइल एक JPEG createThumbs है एक नई छवि मूल छवि पर imagecreatefromjpeg के साथ आधारित बनाता है (). अगले कदम की चौड़ाई और इस छवि की ऊंचाई पाने के लिए है (imagesx (), imagesy ()). और मूल चौड़ाई और ऊंचाई createThumbs के अनुपात thumbWidth $ का उपयोग करना () नई चौड़ाई और थम्बनेल की ऊंचाई सेट. इन नए अनुपात createThumbs का उपयोग करना () है जो एक समान चौड़ाई और imagecreatetruecolor (). Imagecopyresized () की छवि का आकार और इसे बचाने के प्रयोग किया जाता है साथ थम्बनेल की ऊंचाई होगा एक "" रिक्त छवि बनाता है कि "" अभी बनाया खाली. imagecopyresized () इसे ही दिख सकता है, लेकिन मापदंडों का एक बहुत लेता है अगर तुम यह सच है कि जटिल नहीं है दस्तावेज़ीकरण पर एक नज़र रखना. अब यह है कि थम्बनेल एक सही रंग छवि सभी createThumbs के रूप में मौजूद करने की जरूरत है एक jpeg में फाइल कन्वर्ट है. इस imagejpeg करने के लिए () कहा जाता है.

इस तरह से इस समारोह jpegs के लिए काम करता है. वहाँ के लिए कम से कम अंतर है. Pngs और. Gifs.