resize e crop di immagini locali con url pulite

Per fare il resize e il crop al volo di immagini tempo fa scrissi questo script php.
Lo script prende le immagini via http, effettua il ridimensionamento e l’eventuale ritaglio, quindi restituisce l’immagine così elaborata.
Ma se le immagini che dobbiamo ridimensionare e tagliare si trovano sul filesystem locale al server possiamo saltare un passaggio, ovvero il reperimento dell’immagine via http, risparmiando tempo e banda passante.
Per questo ho riadattato lo script di cui sopra, togliendo la parte che recupera l’immagine via http tramite libcurl ( che quindi non è più una dipendenza ) e facendo in modo che le informazioni sulle dimensioni e sulla posizione dell’ immagine da ritagliare/ridimensionare vengano prelevate direttamente sul percorso (path) della URL.
Con una piccola Rewrite Rule sul file .htaccess si riesce a fare in modo che lo script di resize venga chiamato senza l’estensione “.php”, in questo modo le url delle immagini diventano pulite e facciamo contenti i puristi del SEO.

Ecco qualche esempio di immagine e url associata.


http://fabrizio.zellini.org/images/resized/200x200c/api/ape-in-volo.jpg


http://fabrizio.zellini.org/images/resized/300x200c/api/ape-in-volo.jpg


http://fabrizio.zellini.org/images/resized/%28740,400,480,320%29300x200c/api/ape-in-volo.jpg

L’immagine originale è questa.

Potete provare a fare restituire allo script le dimensioni che desiderate, basta cambiare nella url la parte relativa alla dimensione (es, 100x100x, 230x200c, 50×50, la sintassi la trovate in questo post).

Trovate tutto qui, nel file .tar.gz c’è tutto il necessario.

Alcune precisazioni: le immagini vengono prelevate dalla stessa directory nella quale si trova lo script, in questa stessa directory va creata una directory “picscache” con permessi rwrwrw ovvero scrivibile e leggibile da chiunque ( chmod 777 picscache).
Questa direcory conterrà una cache di immagini già ridimensionate, infatti lo script effettua il resize/crop solo quando è necessario ( se l’immagine non è già stata ridimensionata oppure se l’immagine da ridimensionare è più recente di quella in cache).

Per ora lo script lavora solo su file jpeg, ma è facilmente adattabile anche ad altri formati…. magari in una prossima versione.

PS: se usate lo script è gradita ma non assolutamente obbligatoria una piccola menzione con link a questa paginetta, per esempio con questo codice html:

questo sito utilizza lo <a href="http://fabrizio.zellini.org/resize-e-crop-di-immagini-locali-con-url-pulite">script di resize e crop</a> di Fabrizio Zellini