Arhiva pentru funcţiile

Cum se împarte o imagine în imagini multiple Folosind PHP

Postat în funcţii , php ShortLikeAFox de la 8.26.2008

Deci vrei să rupă o imagine mare în mai multe imagini mai mici? Nici o problemă. Acest lucru poate părea o problemă de obscur, dar există mai multe motive aţi dori să faceţi acest lucru. Poate doriţi să creaţi un vizual puzzle de alunecare . Sau poate se execută o WordPress temă unică . Sau poate doriţi să creaţi un colaj de un fel. Este într-adevăr nu contează de ce vrei să împartă o imagine în imagini mai mici, PHP face această sarcină uşoară. Exemplul de mai jos se referă numai la JPEG. Schimbarea funcţia de a face cu alte tipuri de imagini nu ar fi aşa de greu.

<? Php
/ / Aceasta functie va împărţi o imagine într-un număr de dimensiuni la fel de coloane şi rânduri.
split_image funcţie (number_of_rows $, $ number_of_cols, path_to_image $, $ nume_fişier) (

/ / $ = # Number_of_rows de rânduri care doriţi;
/ / $ = # Number_of_cols de coloane pe care doriţi
/ Path_to_image / $ = calea către folderul în imagine este, ceva de genul: / home / content / username / html / lista / uploads /
/ Nume_fişier / $ = fisierului imagine: archery.jpg, etc

/ / Cale analiza pentru extinderea
$file_name); $ Info = pathinfo ($ path_to_image. $ Nume_fişier);

/ / Asiguraţi-vă că avem de-a face cu un jpeg
($info[ 'extension' ]) == 'jpg' ) || ( strtolower ($info[ 'extension' ]) == 'jpeg' ) ){ if ((strtolower ($ info "extindere" []) == "jpg") | | (strtolower ($ info extindere ""] [) == "jpeg")) (

/ / Imagine de încărcare şi de a lua dimensiunea imaginii
); sursa = $ imagecreatefromjpeg ("($ path_to_image) ($ FILE_NAME)");
Width = $ imagesx ($ sursă); / / Find lăţimea
înălţime = $ imagesy ($ sursă); / / Find înălţime
segment_width $ = $ latime / number_of_cols $; / / determina lăţimea de segmente individuale
segment_height $ = $ înălţime / number_of_rows $; / / determină o înălţime de segmente individuale

pentru ($ col = 0; $ col <number_of_cols; col $ $ + +)
(

pentru ($ row = 0; $ row <number_of_rows $; rând $ + +)
(

, $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"); / / Am imprima numele imaginii aici, astfel încât procesul în sine arată ca ruleaza
Im = $ @ imagecreatetruecolor ($ segment_width, $ segment_height);
imagecopyresized ($ im, $ sursa, 0, 0, col $ * $ segment_width, rândul $ * $ segment_height, segment_width, segment_height $ $, segment_width, segment_height $ $);
$ File = "test.jpg";
/ / Salvează imagini
, 100 )) //The destination will be something like /home/content/c/h/d/images/$fn în cazul în care (imagejpeg ($ im, "INSERT DESTINAŢIE aici", 100)) / / destinaţie va fi ceva de genul / home / content / c / h / d / imagini / $ fn

echo ("a fost făcută! <br/>");

)

)

)

)

?>

Cum sa faci imagini miniaturale Folosind PHP

Postat în funcţii , php ShortLikeAFox de la 22.07.2008

Deci doriţi să creaţi o miniatură dintr-o imagine dată ... PHP face acest sarcină uşoară. I-am scris mai întâi, funcţiile de mai jos pentru a face faţă cu imagini încărcate de către utilizatori la un site am ajuta la administrarea. imagini incarcate la acest site poate fi JPEG, pngs, sau gif-uri, asa ca am avut de a scrie o funcţie să se ocupe de toate cele trei. Acest cod se bazeaza off de o funcţie găsite la webcheatsheet.com

Cum se face:

createThumbs funcţie (pathToImages $, $ fnume, pathToThumbs $, $ thumbWidth)
(

/ / Cale analiza pentru extinderea

$ Info = pathinfo ($ pathToImages. Fnume $);
/ Continua numai în cazul în care acest lucru este o imagine JPEG
($info['extension']) == 'jpeg') ) if ((strtolower ($ info "extindere" []) == "jpg") | | (strtolower ($ info extindere ""] [) == 'jpeg'))
(

/ / Imagine de încărcare şi de a lua dimensiunea imaginii
img imagecreatefromjpeg = $ ("($ pathToImages) ($ fnume)");
Width = $ imagesx ($ img);
înălţime = $ imagesy ($ img);

/ / Calcula mărimea thumbnail
new_width $ = $ thumbWidth;
new_height $ = podea ($ inaltime * ($ thumbWidth / $ latime));

/ / Crearea unui temporar noua imagine
= $ Tmp_img imagecreatetruecolor (new_width $, $ new_height);

/ / Copie şi vechi redimensiona imaginea în noua imagine
($ Tmp_img, imagecopyresized $ img, 0, 0, 0, 0, new_width, new_height $ $, latime, inaltime $ $);

/ / Salva thumbnail într-un fişier
imagejpeg ($ tmp_img, "($ pathToThumbs) ($ fnume)");

)

în cazul în care (strtolower ($ info "extindere" []) == "gif")
(

/ / Imagine de încărcare şi de a lua dimensiunea imaginii
$ Img = imagecreatefromgif ("($ pathToImages) ($ fnume)");
Width = $ imagesx ($ img);
înălţime = $ imagesy ($ img);

/ / Calcula mărimea thumbnail
new_width $ = $ thumbWidth;
new_height $ = podea ($ inaltime * ($ thumbWidth / $ latime));

/ / Crearea unui temporar noua imagine
= $ Tmp_img imagecreatetruecolor (new_width $, $ new_height);

/ / Copie şi vechi redimensiona imaginea în noua imagine
($ Tmp_img, imagecopyresized $ img, 0, 0, 0, 0, new_width, new_height $ $, latime, inaltime $ $);

/ / Salva thumbnail într-un fişier
imagegif ($ tmp_img, "($ pathToThumbs) ($ fnume)");

)

în cazul în care (strtolower ($ info "extindere" []) == "png")
(

/ / Imagine de încărcare şi de a lua dimensiunea imaginii
img imagecreatefrompng = $ ("($ pathToImages) ($ fnume)");
Width = $ imagesx ($ img);
înălţime = $ imagesy ($ img);

/ / Calcula mărimea thumbnail
new_width $ = $ thumbWidth;
new_height $ = podea ($ inaltime * ($ thumbWidth / $ latime));

/ / Crearea unui temporar noua imagine
= $ Tmp_img imagecreatetruecolor (new_width $, $ new_height);

/ / Copie şi vechi redimensiona imaginea în noua imagine
($ Tmp_img, imagecopyresized $ img, 0, 0, 0, 0, new_width, new_height $ $, latime, inaltime $ $);

/ / Salva thumbnail într-un fişier
imagepng ($ tmp_img, "($ pathToThumbs) ($ fnume)");

)

)

Cum funcţionează

CreateThumbs funcţie are nevoie de patru argumente.

  • pathToImages $ -> calea către directorul fişierul de imagine este inch S-ar putea arăta cam aşa: / home / content / username / html / lista / uploads /
  • $ Fnume -> fisierului: pic1.gif, johnny.jpg, etc ...
  • pathToThumbs $ -> calea către folderul în care doriţi imagine miniatură pentru a fi inch NU aveţi nevoie ca aceasta să fie aceeaşi cale ca pathToImages $, pentru ca imagine în miniatură vor avea acelaşi nume ca şi imaginea originală.
  • $ ThumbWidth -> lăţimea pe care doriţi să fie în miniatură pixeli.

O notă importantă pe care am să fac aici este că această funcţie nu are nimic în loc, altul decât verifica extensie de fişier, să vă asiguraţi că fişierele de imagine conţin nimic rău. Deoarece createThumbs fişiere () lucreaza cu au fost deja încărcat se presupune că fişierele au fost examinate în mod corespunzător.

Primul lucru createThumbs () nu este chemarea pathinfo () . pathinfo () pauze părţi ale unui drum într-o matrice. Acest lucru este util pentru noi, deoarece avem nevoie de extensie de fişier pentru a crea în mod corespunzător miniatură. createThumbs următoare () controale pentru a vedea dacă avem de-a face cu un jpeg. În cazul în care fişierul original este un createThumbs jpeg creează o imagine nouă, bazată pe imaginea originală cu imagecreatefromjpeg () . Următorul pas este de a obtine lăţimea şi înălţimea acestei imagini ( imagesx () , imagesy () ). Utilizarea $ thumbWidth şi raportul dintre lăţimea originală şi createThumbs înălţime () stabileşte lăţimea noi şi o înălţime de thumbnail. Folosind aceste rapoarte createThumbs noi () creează un "martor" imaginea care va fi aceeaşi lăţime şi înălţime de thumbnail cu imagecreatetruecolor () . imagecopyresized () este folosit pentru a redimensiona imaginea şi salvaţi-l în "gol" tocmai creat. imagecopyresized () ar putea parea ca este nevoie de o mulţime de parametri, dar dacă aruncăm o privire la documentaţia it într-adevăr nu este aşa de complicat. Acum, că thumbnail există ca o imagine în culori adevărate toate createThumbs trebuie să faceţi este să transforme într-un fişier JPEG. Pentru a face acest imagejpeg () se numeşte.

Asta e modul în care funcţia de lucrări pentru JPEG. Există diferenţe minime pentru. Pngs gif şi..