Hvordan lage miniatyrbilder Bruke PHP
Så du vil opprette et miniatyrbilde fra et gitt bilde ... PHP gjør denne oppgaven lett. Jeg først skrev funksjonen nedenfor for å håndtere bilder lastet opp av brukere på et nettsted jeg hjelpe administrere. Lastet opp bilder til dette nettstedet kan være JPEG, PNG eller GIF, så jeg måtte skrive en funksjon for å håndtere alle tre. Denne koden er opprinnelig basert off av en funksjon som finnes på webcheatsheet.com
Hvordan gjøre det:
funksjon createThumbs ($ pathToImages, $ fname, $ pathToThumbs, $ thumbWidth)
(
/ / Parse banen for forlengelse
$ Info = pathinfo ($ pathToImages. $ Fname);
/ / Fortsetter bare hvis dette er et JPEG-bilde
($info['extension']) == 'jpeg') ) if ((strtolower ($ info ['utvidelse']) == 'jpg') | | (strtolower ($ info ['utvidelse']) == "JPEG"))
(/ / Load image og få bildestørrelse
$ Img = imagecreatefromjpeg ("($ pathToImages) ($ fname)");
$ Width = imagesx ($ img);
$ Height = imagesy ($ img);/ / Beregner miniatyrstørrelsen
$ New_width = $ thumbWidth;
$ New_height = floor ($ høyde * ($ thumbWidth / $ bredde));/ / Opprette en ny midlertidig bilde
$ Tmp_img = imagecreatetruecolor ($ new_width, $ new_height);/ / Kopiere og endre størrelse på gamle bilete i nytt bilde
imagecopyresized ($ tmp_img, $ img, 0, 0, 0, 0, $ new_width, $ new_height, $ bredde, $ høyde);/ / Lagre bildene i en fil
imagejpeg ($ tmp_img, "($ pathToThumbs) ($ fname)");)
if (strtolower ($ info ['utvidelse']) == 'gif')
(/ / Load image og få bildestørrelse
$ Img = imagecreatefromgif ("($ pathToImages) ($ fname)");
$ Width = imagesx ($ img);
$ Height = imagesy ($ img);/ / Beregner miniatyrstørrelsen
$ New_width = $ thumbWidth;
$ New_height = floor ($ høyde * ($ thumbWidth / $ bredde));/ / Opprette en ny midlertidig bilde
$ Tmp_img = imagecreatetruecolor ($ new_width, $ new_height);/ / Kopiere og endre størrelse på gamle bilete i nytt bilde
imagecopyresized ($ tmp_img, $ img, 0, 0, 0, 0, $ new_width, $ new_height, $ bredde, $ høyde);/ / Lagre bildene i en fil
imagegif ($ tmp_img, "($ pathToThumbs) ($ fname)");)
if (strtolower ($ info ['utvidelse']) == 'png')
(/ / Load image og få bildestørrelse
$ Img = imagecreatefrompng ("($ pathToImages) ($ fname)");
$ Width = imagesx ($ img);
$ Height = imagesy ($ img);/ / Beregner miniatyrstørrelsen
$ New_width = $ thumbWidth;
$ New_height = floor ($ høyde * ($ thumbWidth / $ bredde));/ / Opprette en ny midlertidig bilde
$ Tmp_img = imagecreatetruecolor ($ new_width, $ new_height);/ / Kopiere og endre størrelse på gamle bilete i nytt bilde
imagecopyresized ($ tmp_img, $ img, 0, 0, 0, 0, $ new_width, $ new_height, $ bredde, $ høyde);/ / Lagre bildene i en fil
imagepng ($ tmp_img, "($ pathToThumbs) ($ fname)");)
)
Hvordan dette fungerer
Funksjonen createThumbs tar fire argumenter.
- $ PathToImages -> Stien til mappen bildet filen er i. Det kan se ut omtrent som dette: / home / content / brukernavn / html / list / opplastninger /
- $ Fname -> Filnavnet: pic1.gif, johnny.jpg, etc ...
- $ PathToThumbs -> Stien til mappen du vil at miniatyrbildet å være i. Du IKKE vil at denne skal være den samme banen som $ pathToImages, fordi miniatyrbilde vil ha samme navn som det opprinnelige bildet.
- $ ThumbWidth -> Det bredden du vil at bildene skal være i piksler.
En viktig merke til at jeg bør gjøre her er at denne funksjonen har ingenting på plass, andre enn den filtypen sjekk, for å sikre at bildefilene inneholder noe skadelig. Siden filene createThumbs () arbeider med har allerede blitt lastet opp det antas at filene har blitt skikkelig gransket.
Det første createThumbs () gjør er å ringe pathinfo () . pathinfo () bryter med deler av en bane i en matrise. Dette er nyttig for oss, fordi vi trenger til filtypen i riktig opprette miniatyrbilde. Neste createThumbs () sjekker for å se om vi har å gjøre med en jpeg. Hvis den opprinnelige filen er en jpeg createThumbs oppretter et nytt bilde basert på det originale bildet med imagecreatefromjpeg () . Det neste trinnet er å få bredden og høyden på dette bildet ( imagesx () , imagesy () ). Bruke $ thumbWidth og forholdet mellom den opprinnelige bredde og høyde createThumbs () setter den nye bredde og høyde på miniatyrbildet. Ved hjelp av disse nye forhold createThumbs () oppretter et "tomt" bilde som vil være den samme bredde og høyde på et av bildene med imagecreatetruecolor () . imagecopyresized () brukes til å endre størrelsen på bildet og lagre det i "blanke" nettopp opprettet. imagecopyresized () kan virke som det tar mange parametre, men hvis du tar en titt på dokumentasjonen det er virkelig ikke så komplisert. Nå som bildene eksisterer som en ekte fargebilde alle createThumbs trenger å gjøre er å konvertere filen til en jpeg. For å gjøre dette imagejpeg () kalles.
Det er hvordan funksjonen fungerer for JPEG. Det er minimale forskjeller på. PNGs og. Gifs.








































