Hogyan kell egy kép Divide-ba Sokszoros Képek PHP

Posted in funkció , php által ShortLikeAFox a 26. augusztus 2008

Így szeretné megtörni egy nagy kép a több kisebb kép? Nem probléma. Ez úgy tűnhet, mint egy homályos probléma, de van több ok, jobb, ha ezt. Talán szeretne létrehozni egy vizuális csúszott puzzle . Vagy talán fut egy egyedülálló WordPress téma . Vagy talán ön szeretne létrehozni egy kollázs valamilyen. Tényleg nem számít, hogy miért szeretnél hasít egy kép kisebb kép, PHP teszi ezt a feladatot egyszerű. Az alábbi példa csak JPEG foglalkozik. Megváltoztatja a funkció kezelésére más típusú képek nem lenne olyan nehéz.

<? Php
/ / Ez a funkció hasít egy kép több, ugyanolyan méretű sorok és oszlopok.
függvény split_image ($ number_of_rows, $ number_of_cols, $ path_to_image, fájlnév $) (

/ / $ = # Number_of_rows a sorok;
/ / $ = # Number_of_cols az oszlopok kívánt
/ / $ Path_to_image = elérési útját a mappa a kép van, valahogy így: / home / content / felhasználónév / html / lista / feltöltések /
/ / $ Fájlnév = A fájlnév a kép: archery.jpg, stb

/ / Elemez utat a meghosszabbítás
$file_name); $ Info = pathinfo ($ path_to_image. Fájlnév $);

/ / Ügyeljen van szó, a jpeg
($info[ 'extension' ]) == 'jpg' ) || ( strtolower ($info[ 'extension' ]) == 'jpeg' ) ){ if ((strtolower ($ info ['kiterjesztés']) == 'jpg') | | (strtolower ($ info ['kiterjesztés']) == "jpeg")) (

/ / Kép betöltése és kap képméretet
); $ Source = ImageCreateFromJpeg ("($ path_to_image) ($ fájlnév)");
$ Width = ImageSX ($ source); / / Keresd meg a szélesség
$ Height = ImageSY ($ source); / / Keresd meg a magasság
$ Segment_width = $ szélesség / $ number_of_cols; / / Határozzuk meg a szélességét az egyes szegmensek
$ Segment_height = $ magasság / $ number_of_rows; / / Határozzuk meg a magasságát az egyes szegmensekben

for ($ oszlop = 0, $ col <$ number_of_cols; $ col + +)
(

for ($ sor = 0; $ row <$ number_of_rows, $ row + +)
(

, $col, $row ); $ Fn = sprintf ("img% 02d_% 02d.jpg", $ col, $ row);
); //I print the image name here, so that the process shows itself as it runs echo ("$ fn); / / I nyomtatni a kép neve van, hogy a folyamatot mutatja magát fut
$ Im = @ imagecreatetruecolor ($ segment_width, $ segment_height);
imagecopyresized ($ im, $ source, 0, 0, $ col * $ segment_width, $ row * $ segment_height, segment_width $, $ segment_height, segment_width $, $ segment_height);
$ File = "test.jpg";
/ / A képek mentése
, 100 )) //The destination will be something like /home/content/c/h/d/images/$fn if (imagejpeg ($ im, "INSERT rendeltetési ITT", 100)) / / A cél lesz valami, mint a / home / content / c / h / d / images / $ fn

echo ("megtörtént! <br/>");

)

)

)

)

?>