Hur dela en bild i flera bilder med PHP
Så du vill bryta en stor bild i flera mindre bilder? Inga problem. Det kan tyckas som en obskyr problem, men det finns flera skäl du vill göra detta. Kanske vill du skapa en visuell skjutdörr pussel . Eller kanske du kör ett unikt WordPress tema . Eller kanske du vill skapa ett collage av något slag. Det spelar ingen roll varför du vill dela en bild i mindre bild, gör PHP denna uppgift lätt. Exemplet nedan endast behandlar JPEG. Ändra funktionen för att hantera andra typer av bilder skulle inte vara så svårt.
<? Php
/ / Denna funktion kommer att dela en bild i ett antal lika stora kolumner och rader.
funktion split_image ($ number_of_rows, $ number_of_cols, $ path_to_image, $ filnamn) (
/ / $ Number_of_rows = # rader du vill;
/ / $ Number_of_cols = Antal kolumner som du vill
/ / $ Path_to_image = sökvägen till den mapp bilden finns i, något liknande: / home / innehåll / användarnamn / html / list / tillagda /
/ / $ Filnamn = filnamnet på bilden: archery.jpg etc.
/ / Parse sökväg för utbyggnad
$file_name); $ Info = pathinfo ($ path_to_image. $ Filnamn);
/ / Se till att vi har att göra med en jpeg
($info[ 'extension' ]) == 'jpg' ) || ( strtolower ($info[ 'extension' ]) == 'jpeg' ) ){ if ((strtolower ($ info ['förlängning']) == "jpg") | | (strtolower ($ info ['förlängning']) == 'jpeg')) (
/ / Läsa in bilden och få bildstorlek
); $ Source = imagecreatefromjpeg ("($ path_to_image) ($ filnamn)");
$ Width = imagesx ($ source), / / Hitta den bredd
$ Height = imagesy ($ source), / / Hitta höjden
$ Segment_width = $ bredd / $ number_of_cols, / / Bestäm bredd av de enskilda segmenten
$ Segment_height = $ höjd / $ number_of_rows, / / Bestäm höjden på de enskilda segmentenför ($ col = 0, $ col <$ number_of_cols, $ col + +)
(för ($ rad = 0, $ rad <$ number_of_rows, $ rad + +)
(, $col, $row ); $ Fn = sprintf ("img% 02d_% 02d.jpg", $ col, $ rad);
); //I print the image name here, so that the process shows itself as it runs echo ("$ fn"), / / jag skriva ut bilden namn här, så att processen visar sig som det strider
$ Im = @ imagecreatetruecolor ($ segment_width, $ segment_height);
imagecopyresized ($ im, $ källa, 0, 0, $ col * $ segment_width, $ rad * $ segment_height, $ segment_width, $ segment_height, $ segment_width, $ segment_height);
$ File = "test.jpg";
/ / Spara bilder
, 100 )) //The destination will be something like /home/content/c/h/d/images/$fn if (imagejpeg ($ im, "INSERT DESTINATION här", 100)) / / Destinationen kommer att bli något liknande / home / innehåll / c / h / d / images / $ fnecho ("har gjorts! <br/>");
)
)
)
)
?>








































