Hvordan lage JPG Thumbnails med PHP

Et miniatyrbilde er en kopi av et bilde som er skalert ned proporsjonalt til en liten størrelse slik at en bruker kan se flere bilder på samme skjerm, og fremdeles være i stand til å ha en idé om hva hvert bilde ser ut når den vises i sin opprinnelige størrelse. Hvis din versjon av PHP er satt opp med støtte til GD biblioteket, kan du bruke de mange innebygde funksjoner for å skape et bilde fra en JPG-fil, redusere størrelsen og lagre det som et miniatyrbilde.

Bruksanvisning

1 Skriv en funksjon for å lage miniatyrbildene. Ta tre parametere til funksjonen: banen hvor bildefilene er lagret, banen der miniatyr filene skal lagres og bredden på miniatyrbildet. For eksempel inn:

<? Php

funksjons create_thumbnails ($ IMAGE_PATH, $ thumb_path, $ thumb_width) {

2 Åpne mappen hvor de bildefilene er lagret. Åpne en løkke til å lese hver fil i katalogen, sjekk for å sørge for at det er en JPG-fil og deretter behandle den. For eksempel inn:

while (($file = readdir($directory))) {

$ File_info = pathinfo ($ IMAGE_PATH, $ fil);

if (strtolower ($ file_info [ "forlengelse"]) == "jpg") {

echo "Konvertering". $ Image_file. "Til miniatyr";

3 Lagre bildet banen og filnavnet og miniatyr banen og filnavnet til variabler for bildet blir behandlet i loop. For eksempel inn:

$image_file = $image_path . $file;

$ Thumb_file = $ thumb_path. $ Fil;

4 Opprett et nytt bilde fra bildefilen med imagecreatefromjpeg funksjon og få den nåværende bredde og høyde på bildet. For eksempel inn:

$image = imagecreatefromjpeg($image_file);

$ Width = imagesx ($ bilde);

$ Height = imagesy ($ bilde);

5 Beregn høyden på miniatyr basert på bredden på miniatyr sendes som en parameter til funksjonen og holde dimensjonene proporsjonal. For eksempel inn:

$new_height = floor($height * ($thumb_width / $width));

6 Opprett en midlertidig bilde. Kopiere bildet inn i det midlertidige bildet starter på koordinater 0,0,0,0 og skalering av bildet basert på dagens bredde, miniatyr bredde, nåværende høyde og miniatyr høyde. For eksempel inn:

$temp = imagecreatetruecolor($thumb_width, $new_height);

imagecopyresized ($ temp, $ bilde, 0, 0, 0, 0, $ thumb_width, $ new_height, $ bredde, $ høyde);

7 Lagre miniatyren i miniatyr mappen. For eksempel inn:

imagejpeg($temp, $thumb_file);

8 Generere en feilmelding hvis bildefilen var ikke en JPG-fil. Avslutt sløyfe og lukke åpne katalog med bilder når du er ferdig. For eksempel inn:

}

else {

echo $ image_file. "Er ikke et JPG-bilde!";

}

}

closedir ($ katalog);

}

9 Kaller funksjonen med de riktige parametrene for å utføre konverteringen. For eksempel inn:

create_thumbnails ( "/ home / steve / images /", "/ home / steve / thumbs /", 100);

?>

Hint

  • Din versjon av PHP må ha GD-støtte aktivert for å bruke disse funksjonene.