Paano sa Gumawa ng Thumbnail imahe Paggamit PHP
Kaya nais mong lumikha ng isang thumbnail mula sa isang ibinigay na imahen ... PHP gumagawa ito madaling gawain. Ako unang wrote ang function sa ibaba upang harapin ang mga imahe-upload ng mga gumagamit sa isang site ng tulong ko tumulong. Uploaded mga imahe sa site na ito ay maaaring mga JPEG, pngs, o gifs, kaya ako had upang makapagsulat ng isang function sa pakikitungo sa lahat ng tatlong. Ang code na ito ay orihinal na batay off ng isang function na natagpuan sa webcheatsheet.com
Paano ba ito:
createThumbs function ($ pathToImages, $ fname, $ pathToThumbs, $ thumbWidth)
(
/ / Parse ang landas para sa extension
$ Info = pathinfo ($ pathToImages. Fname $);
/ / Patuloy na lamang kung ito ay isang JPEG larawan
($info['extension']) == 'jpeg') ) kung ((strtolower ($ info ['extension']) == 'jpg') | | (strtolower ($ info 'extension'] [) == 'jpeg'))
(/ / Load nang imahen at makakuha ng sukat ng imahe
$ Img = imagecreatefromjpeg ("$ (pathToImages) ($ fname)");
$ Width = imagesx ($ img);
$ Height = imagesy ($ img);/ / Makalkula ang thumbnail sukat
$ New_width = $ thumbWidth;
$ New_height = palapag ($ taas * ($ thumbWidth / $ lapad));/ / Lumikha ng isang bagong pansamantalang imahe
$ Tmp_img imagecreatetruecolor = ($ new_width, $ new_height);/ / Kopyahin at baguhin ang laki lumang imahe sa bagong imahe
imagecopyresized ($ tmp_img, $ img, 0, 0, 0, 0, $ new_width, $ new_height, $ lapad, taas $);/ / I-save ang thumbnail sa isang file
imagejpeg ($ tmp_img, "$ (pathToThumbs) ($ fname)");)
kung (strtolower ($ info ['extension']) == 'gif')
(/ / Load nang imahen at makakuha ng sukat ng imahe
$ Img = imagecreatefromgif ("$ (pathToImages) ($ fname)");
$ Width = imagesx ($ img);
$ Height = imagesy ($ img);/ / Makalkula ang thumbnail sukat
$ New_width = $ thumbWidth;
$ New_height = palapag ($ taas * ($ thumbWidth / $ lapad));/ / Lumikha ng isang bagong pansamantalang imahe
$ Tmp_img imagecreatetruecolor = ($ new_width, $ new_height);/ / Kopyahin at baguhin ang laki lumang imahe sa bagong imahe
imagecopyresized ($ tmp_img, $ img, 0, 0, 0, 0, $ new_width, $ new_height, $ lapad, taas $);/ / I-save ang thumbnail sa isang file
imagegif ($ tmp_img, "$ (pathToThumbs) ($ fname)");)
kung (strtolower ($ info ['extension']) == 'png')
(/ / Load nang imahen at makakuha ng sukat ng imahe
$ Img = imagecreatefrompng ("$ (pathToImages) ($ fname)");
$ Width = imagesx ($ img);
$ Height = imagesy ($ img);/ / Makalkula ang thumbnail sukat
$ New_width = $ thumbWidth;
$ New_height = palapag ($ taas * ($ thumbWidth / $ lapad));/ / Lumikha ng isang bagong pansamantalang imahe
$ Tmp_img imagecreatetruecolor = ($ new_width, $ new_height);/ / Kopyahin at baguhin ang laki lumang imahe sa bagong imahe
imagecopyresized ($ tmp_img, $ img, 0, 0, 0, 0, $ new_width, $ new_height, $ lapad, taas $);/ / I-save ang thumbnail sa isang file
imagepng ($ tmp_img, "$ (pathToThumbs) ($ fname)");)
)
Paano ito Works
Ang function createThumbs tumatagal ng apat na argumento.
- $ PathToImages -> Ang landas sa ang folder na ang file ng imahe ay maaaring in Ito hitsura ng isang bagay tulad nito: / home / content / username / html / listahan / uploads /
- $ Fname -> Ang filename: pic1.gif, johnny.jpg, etc ...
- $ PathToThumbs -> Ang landas sa ang folder na nais mong ang mga thumbnail na imahe para maging in ka gumawa hindi magkulang ito upang maging ang parehong landas bilang $ pathToImages, dahil ang thumbnail imahen ay magkakaroon ng parehong pangalan tulad ng orihinal na imahe.
- $ ThumbWidth -> Ang lapad na gusto mo ang thumbnail upang maging sa pixels.
Isang mahalagang tandaan na ang dapat kong gawin dito ay na ang function na ito ay wala sa lugar, maliban sa ang file extension check, upang siguraduhin na ang mga imahen na file na naglalaman ng malisyosong wala. Dahil ang mga file createThumbs () gumagana sa ay may nai-upload na ito ay hindi tunay na ang mga file ay maayos scrutinized.
Ang unang bagay na createThumbs () ay ang tawag pathinfo () . pathinfo () break ang mga bahagi ng isang landas sa isang array. Ito ay kapaki-pakinabang sa amin, dahil kailangan namin ang file extension na maayos gumawa ng thumbnail. Next createThumbs () tseke upang makita kung kami ay pakikitungo sa isang jpeg. Kung ang orihinal na file ay isang jpeg createThumbs lumilikha ng isang bagong imahe batay sa orihinal na imahe na may imagecreatefromjpeg () . Ang susunod na hakbang ay upang makakuha ng ang lapad at taas ng ang larawan na ito ( imagesx () , imagesy () ). Paggamit ng $ thumbWidth at ang ratio ng orihinal na lapad at taas createThumbs () set ang bagong lapad at taas ng thumbnail. Paggamit ng mga bagong createThumbs ratios () lumilikha ng isang "blangko" imahe na ay ang parehong lapad at taas ng thumbnail sa imagecreatetruecolor () . imagecopyresized () ay ginagamit upang palitan ang laki ng imahe at i-save ito sa "blangko" lamang nilikha. imagecopyresized () ay maaaring mukhang tulad ng ito ay umaabot ng isang pulutong ng mga parameter, ngunit kung ka kumuha ng isang tingnan ang babasahin ito tunay ay hindi na kumplikado. Ngayon na thumbnail ang umiiral na bilang isang tunay na imahen na kulay ng lahat ng createThumbs mga pangangailangan upang gawin ay convert ang file sa isang jpeg. Para gawin ito imagejpeg () ay tinatawag na.
Iyan ay kung paano ang function ay gumagana para sa mga JPEG. May mga kaunti para sa mga pagkakaiba. Pngs at. Gifs.








































