Archivio per funzioni

Come dividere una immagine in più immagini usando PHP

Posted in funzioni, php da ShortLikeAFox agosto 26, 2008

Così si vuole spezzare una grande immagine in più piccole immagini? Nessun problema. Questo può sembrare un oscuro problema, ma vi sono molteplici ragioni che ci si vuole fare questo. Forse si desidera creare una visuale a scorrimento puzzle. O forse si esegue un unico tema di WordPress. O forse si desidera creare un collage di qualche tipo. E 'davvero non importa il motivo per cui si desidera dividere l'immagine in immagine più piccoli, il PHP rende questo compito facile. L'esempio che segue riguarda solo i file JPEG. Modificare la funzione di trattare con altri tipi di immagini non sarebbe che dura.

<? php
/ / Questa funzione split un'immagine in un certo numero di piccole e medie ugualmente colonne e righe.
funzione split_image ($ number_of_rows, number_of_cols $, $ path_to_image, $ nome_file) (

/ / $ = # number_of_rows di righe che si desidera;
/ / $ = # number_of_cols di protocolli che si desidera
/ / $ = path_to_image il percorso della cartella è l'immagine in qualcosa di simile: / home / content / nomeutente / html / list / upload /
/ / $ nome_file = Il nome del file immagine: archery.jpg, ecc

/ / Percorso per analizzare l'estensione
$file_name); $ info = pathinfo ($ path_to_image. $ nome_file);

/ / assicurati che ci troviamo di fronte ad uno jpeg
($info[ 'extension' ]) == ‘jpg’ ) || ( strtolower ($info[ 'extension' ]) == ‘jpeg’ ) ){ if ((strtolower ($ info [ 'estensione']) == 'jpg') | | (strtolower ($ info [ 'estensione']) == 'jpeg')) (

/ / Caricare l'immagine e ottenere le dimensioni delle immagini
); $ source = imagecreatefromjpeg ( "($ path_to_image) ($ nome_file)");
$ width = imagesx ($ source); / / Trova la larghezza
$ height = imagesy ($ source); / / Trova l'altezza
segment_width $ = $ larghezza / $ number_of_cols; / / Determinare la larghezza dei singoli segmenti
$ segment_height altezza = $ / $ number_of_rows; / / Determinare l'altezza dei singoli segmenti

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

for ($ riga = 0; $ riga <$ number_of_rows; $ riga + +)
(

, $col, $row ); $ fn = sprintf ( "img% 02d_% 02d.jpg", $ Col, $ riga);
); //I print the image name here, so that the process shows itself as it runs echo ( "$ fn"); / / stampare l'immagine qui il nome, in modo che il processo si mostra come si svolge
$ im = @ imagecreatetruecolor ($ segment_width, $ segment_height);
imagecopyresized ($ im, $ source, 0, 0, $ * $ col segment_width, $ riga * $ segment_height, segment_width $, $ segment_height, segment_width $, $ segment_height);
$ file = "test.jpg";
/ / Salva le immagini
, 100 )) //The destination will be something like /home/content/c/h/d/images/$fn if (imagejpeg ($ im, "si inserisce DESTINAZIONE QUI", 100)) / / La destinazione sarà qualcosa del tipo / home / content / c / h / d / immagini / $ fn

echo ( "è stato fatto! <br/>");

)

)

)

)

?>

Permalink | Commenti

Come rendere le immagini in miniatura utilizzando PHP

Posted in funzioni, php da ShortLikeAFox il 22 luglio, 2008

Così si desidera creare una miniatura a partire da una data immagine ... PHP rende questo compito facile. Mi ha scritto la prima funzione qui sotto per trattare con le immagini caricate dagli utenti in un sito aiutare amministrare. Immagini caricate a questo sito possono essere i file JPEG, PNG, o GIF, così ho dovuto scrivere una funzione per far fronte a tutti e tre. Questo codice è basato, in origine, al largo di una funzione disponibile sul sito webcheatsheet.com

Come per farlo:

funzione createThumbs ($ pathToImages, $ fname, $ pathToThumbs, $ thumbWidth)
(

/ / Percorso per analizzare l'estensione

$ info = pathinfo ($ pathToImages. $ fname);
/ / Continuare solo se si tratta di una immagine JPEG
($info['extension']) == ‘jpeg’) ) if ((strtolower ($ info [ 'estensione']) == 'jpg') | | (strtolower ($ info [ 'estensione']) == 'jpeg'))
(

/ / Caricare l'immagine e ottenere le dimensioni delle immagini
img = $ imagecreatefromjpeg ( "($ pathToImages) () $ fname");
$ width = imagesx ($ img);
$ height = imagesy ($ img);

/ / Calcolare le dimensioni miniatura
new_width $ = $ thumbWidth;
new_height $ = piano ($ altezza * (thumbWidth $ / $ larghezza));

/ / Creare una nuova immagine temporaneo
tmp_img $ = imagecreatetruecolor ($ new_width, $ new_height);

/ / Copiare e ridimensionare vecchia immagine in nuova immagine
imagecopyresized ($ tmp_img, $ img, 0, 0, 0, 0, $ new_width, new_height $, $ larghezza, $ altezza);

/ / Salviamo la miniatura in un file
imagejpeg ($ tmp_img, "pathToThumbs $ () () $ fname");

)

if (strtolower ($ info [ 'estensione']) == 'gif')
(

/ / Caricare l'immagine e ottenere le dimensioni delle immagini
img = $ imagecreatefromgif ( "($ pathToImages) () $ fname");
$ width = imagesx ($ img);
$ height = imagesy ($ img);

/ / Calcolare le dimensioni miniatura
new_width $ = $ thumbWidth;
new_height $ = piano ($ altezza * (thumbWidth $ / $ larghezza));

/ / Creare una nuova immagine temporaneo
tmp_img $ = imagecreatetruecolor ($ new_width, $ new_height);

/ / Copiare e ridimensionare vecchia immagine in nuova immagine
imagecopyresized ($ tmp_img, $ img, 0, 0, 0, 0, $ new_width, new_height $, $ larghezza, $ altezza);

/ / Salviamo la miniatura in un file
imagegif ($ tmp_img, "pathToThumbs $ () () $ fname");

)

if (strtolower ($ info [ 'estensione']) == 'png')
(

/ / Caricare l'immagine e ottenere le dimensioni delle immagini
img = $ imagecreatefrompng ( "($ pathToImages) () $ fname");
$ width = imagesx ($ img);
$ height = imagesy ($ img);

/ / Calcolare le dimensioni miniatura
new_width $ = $ thumbWidth;
new_height $ = piano ($ altezza * (thumbWidth $ / $ larghezza));

/ / Creare una nuova immagine temporaneo
tmp_img $ = imagecreatetruecolor ($ new_width, $ new_height);

/ / Copiare e ridimensionare vecchia immagine in nuova immagine
imagecopyresized ($ tmp_img, $ img, 0, 0, 0, 0, $ new_width, new_height $, $ larghezza, $ altezza);

/ / Salviamo la miniatura in un file
imagepng ($ tmp_img, "pathToThumbs $ () () $ fname");

)

)

Come funziona

La funzione createThumbs prende quattro argomenti.

  • $ pathToImages -> Il percorso della cartella il file immagine è poll Si potrebbe apparire qualcosa di simile a questo: / home / content / nomeutente / html / list / upload /
  • $ fname -> Il nome del file: pic1.gif, johnny.jpg, ecc ...
  • $ pathToThumbs -> Il percorso della cartella che si desidera l'immagine in miniatura per essere poll non vuoi che questo sia lo stesso percorso come $ pathToImages, perché l'immagine in miniatura avrà lo stesso nome come l'immagine originale.
  • $ thumbWidth -> La larghezza che si desidera l'unghia del pollice per essere in pixel.

Una nota importante che vorrei fare è che questa funzione non ha nulla in atto, diversi da quelli l'estensione del file controllo, per assicurarsi che il file di immagine contengono nulla "maligno". Poiché il file createThumbs () con le opere sono già stati caricati si presume che i file sono stati adeguatamente analizzati.

La prima cosa createThumbs () non è chiamata pathinfo (). pathinfo () rompe le parti di un cammino in un array. Questo è utile per noi, perché abbiamo bisogno l'estensione del file per creare propriamente la miniatura. Avanti createThumbs () controlla per vedere se si tratta di un formato jpeg. Se il file originale è un jpeg createThumbs crea una nuova immagine basata su l'immagine originale con imagecreatefromjpeg (). Il passo successivo è quello di ottenere la larghezza e l'altezza di questa immagine (imagesx (), imagesy ()). Uso $ thumbWidth e il rapporto tra l'originale larghezza e l'altezza createThumbs () definisce la nuova larghezza e l'altezza della miniatura. L'utilizzo di questi nuovi rapporti createThumbs () crea un "vuoto" di immagine che sarà la stessa larghezza e l'altezza della miniatura con imagecreatetruecolor (). Imagecopyresized () è usato per ridimensionare l'immagine e salvarla in "bianco" appena creata. imagecopyresized () può sembrare che richiede un sacco di parametri, ma se si dà un'occhiata alla documentazione ed è davvero complicato che non. Ora che la miniatura esiste come una vera e propria immagine a colori tutte le createThumbs deve fare è convertire il file in un formato jpeg. Per effettuare questa operazione imagejpeg () è chiamato.

Ecco come funziona la funzione per i file JPEG. Ci sono differenze per minimo. E PNG. Gif.

Permalink | Commenti