How to Make tumnagelbilder Använda PHP
Så du vill skapa en bild från en viss bild ... PHP gör denna uppgift lätt. Jag först skrev funktionen nedan för att hantera bilder laddas upp av användarna på en plats jag hjälpa administrera. Uppladdade bilder till den här webbplatsen kan JPEG, pngs eller gifs, så jag var tvungen att skriva en funktion för att ta itu med alla tre. Denna kod är ursprungligen baserad på en funktion som finns på webcheatsheet.com
Hur man gör:
funktion createThumbs ($ pathToImages, $ fname, $ pathToThumbs, $ thumbWidth)
(
/ / Parse väg för utbyggnad
$ info = pathinfo ($ pathToImages. $ fname);
/ / Fortsätta endast om detta är en JPEG-bild
($info['extension']) == ‘jpeg’) ) if ((strtolower ($ info [ 'förlängning']) == "jpg") | | (strtolower ($ info [ 'förlängning']) == 'jpeg'))
(/ / Load image och få bildstorlek
$ img = imagecreatefromjpeg ( "($ pathToImages) ($ fname)");
$ width = imagesx ($ img);
$ height = imagesy ($ img);/ / Beräkna thumbnail storlek
$ new_width = $ thumbWidth;
$ new_height = floor ($ höjd * ($ thumbWidth / $ bredd));/ / Skapa en ny tillfällig bild
$ tmp_img = imagecreatetruecolor ($ new_width, $ new_height);/ / Kopiera och ändra storlek på gamla bilden till ny bild
imagecopyresized ($ tmp_img, $ img, 0, 0, 0, 0, $ new_width, $ new_height, $ width, $ höjd);/ / Spara thumbnail till en fil
imagejpeg ($ tmp_img, "($ pathToThumbs) ($ fname)");)
if (strtolower ($ info [ 'förlängning']) == "gif")
(/ / Load image och få bildstorlek
$ img = imagecreatefromgif ( "($ pathToImages) ($ fname)");
$ width = imagesx ($ img);
$ height = imagesy ($ img);/ / Beräkna thumbnail storlek
$ new_width = $ thumbWidth;
$ new_height = floor ($ höjd * ($ thumbWidth / $ bredd));/ / Skapa en ny tillfällig bild
$ tmp_img = imagecreatetruecolor ($ new_width, $ new_height);/ / Kopiera och ändra storlek på gamla bilden till ny bild
imagecopyresized ($ tmp_img, $ img, 0, 0, 0, 0, $ new_width, $ new_height, $ width, $ höjd);/ / Spara thumbnail till en fil
imagegif ($ tmp_img, "($ pathToThumbs) ($ fname)");)
if (strtolower ($ info [ 'förlängning']) == 'png)
(/ / Load image och få bildstorlek
$ img = imagecreatefrompng ( "($ pathToImages) ($ fname)");
$ width = imagesx ($ img);
$ height = imagesy ($ img);/ / Beräkna thumbnail storlek
$ new_width = $ thumbWidth;
$ new_height = floor ($ höjd * ($ thumbWidth / $ bredd));/ / Skapa en ny tillfällig bild
$ tmp_img = imagecreatetruecolor ($ new_width, $ new_height);/ / Kopiera och ändra storlek på gamla bilden till ny bild
imagecopyresized ($ tmp_img, $ img, 0, 0, 0, 0, $ new_width, $ new_height, $ width, $ höjd);/ / Spara thumbnail till en fil
imagepng ($ tmp_img, "($ pathToThumbs) ($ fname)");)
)
Hur detta fungerar
Funktionen createThumbs tar fyra argument.
- $ pathToImages -> Vägen till mappen bildfilen är i. Det kan se ut ungefär så här: / home / innehåll / användarnamn / html / list / uploads /
- $ fname -> Filnamnet: pic1.gif, johnny.jpg, osv ...
- $ pathToThumbs -> Sökvägen till den mapp du vill att miniatyrbild vara i. du inte vill att detta är samma väg som $ pathToImages, eftersom miniatyrbild kommer att ha samma namn som den ursprungliga bilden.
- $ thumbWidth -> bredd som du vill miniatyrbildsida vara i pixlar.
En viktig anmärkning som jag borde göra här är att denna funktion inte har någonting på plats, än filnamnstillägg kontrollera att försäkra sig om att bildfiler innehåller inte skadliga. Eftersom filerna createThumbs () arbetar med har redan laddat upp det antas att filerna har korrekt granskas.
Det första createThumbs () gör är att ringa pathinfo (). pathinfo () bryter mot delar av en väg in i en matris. Detta är användbart för oss, eftersom vi behöver filnamnstillägget att kunna skapa miniatyrbildsida. Nästa createThumbs () kontroller för att se om vi har att göra med en jpeg. Om den ursprungliga filen är en jpeg createThumbs skapar en ny bild baserad på den ursprungliga bilden med imagecreatefromjpeg (). Nästa steg är att få den bredd och höjd på den här bilden (imagesx (), imagesy ()). Använda $ thumbWidth och andelen av den ursprungliga bredden och höjden createThumbs () sätter nya bredd och höjd på miniatyrbild. Med hjälp av dessa nya förhållanden createThumbs () skapar en "tom" bild som kommer att vara samma bredd och höjd på minibilden med imagecreatetruecolor (). Imagecopyresized () används för att ändra storlek på bilden och spara den i den "tomma" just har skapat. imagecopyresized () kan tyckas som om det tar en hel del parametrar, men om du tar en titt på den dokumentation som den egentligen inte är så komplicerat. Nu när miniatyrbildsida existerar som en verklig färg bild alla createThumbs behöver göra är att konvertera filen till en jpeg. För att göra detta imagejpeg () anropas.
Så det fungerar för JPEG. Det är minimala skillnader för. Pngs och. Gifs.






















