Leggi il Topic


Funzione autoridimensionante per immagini avatar
953982
953982 Inviato: 14 Dic 2006 23:44
Oggetto: Funzione autoridimensionante per immagini avatar
 

non ricordo se se ne era gia parlato, mi pare di no...ho visto su questo forum che c'è una funzione che ridimensiona automaticamente le immagini uploadate, se queste non corrispondono gia agli standart accettati...potremmo farlo anche qui sul tinga?
 
954094
954094 Inviato: 15 Dic 2006 0:45
 

gia... ma le proporzioni verrebbero rispettate?
 
954108
954108 Inviato: 15 Dic 2006 1:17
 

su quel forum funziona e rispetta le proporzioni, adattandole allo standard impostato dai gestori del sito...mi pare che sia in php il forum, ma non in licenza gratuita, cmq gli aspetti tecnici li lascio a persone competenti icon_wink.gif
 
959617
959617 Inviato: 16 Dic 2006 22:05
 

Appena avrò un attimo di tempo provo a dare un'occhiata a funzioni di questo tipo, anche anche se scaricare un programmino per la manipolazione delle immagini non dovrebbe essere molto difficile così l'utente se lo ridimensiona lui... vedremo come si potrà fare
 
12235319
12235319 Inviato: 5 Ago 2011 7:43
 

Ciao, rispolvero questo topic perchè l'idea non sarebbe malvagia.
Molto spesso capita che ci siano utenti non capaci di ridimensionare le foto.
Infatti mi sono imbattuto in questo topic mentre cercavo il topic da segnalare ad un utente in cui si spiega come ridimensionare le foto.
Se però ci fosse questa funzione integrata nel forum le cose sarebbero risolte.
 
12252755
12252755 Inviato: 9 Ago 2011 14:20
 

Concordo con Nik 0509_up.gif Sicuramente per i nuovi arrivati sarebbe piu' semplice, e anche per chi non e' molto competente. Comunque io consiglio di usare picnik ( Link a pagina di Picnik.com ) per ridimensionare, e' abbastanza semplice icon_wink.gif
 
12480322
12480322 Inviato: 29 Set 2011 11:45
 

Anche per me sarebbe un'ottima idea! icon_mrgreen.gif
 
12480618
12480618 Inviato: 29 Set 2011 12:59
 

Eh ragazzi ma è un po' un casino, sarebbe meglio trovare una buona risorsa online e segnalarla per bene (anche dalla maschera utente...)
 
12494447
12494447 Inviato: 2 Ott 2011 17:48
 

Con il PHP generare un tag img con le misure ridotte senza alterare le proporzioni è relativamente semplice... io facevo una chiamata alla funzione getimagesize() che mi ritornava le dimensioni dell'immagine, calcolavo il rapporto di riduzione tra il lato maggiore dell'immagine originale e il lato corrispondente dell'immagine desiderata, dividevo entrambe le dimensioni dell'immagine originale per il rapporto di riduzione e generavo l'HTML con le misure ridotte dentro width e height nel tag dell'immagine. Non ho il codice sottomano, ma più o meno funzionava così:

- voglio un avatar di max 100x120 (larghezza x altezza).
- mi danno un immagine che secondo getimgsize è di 180x360.
- i lati maggiori in questo caso sono le larghezze, cioè 120 e 360.
- il rapporto di riduzione è 360/120=3
- le misure dell'immagine dovranno essere 180/3 e 360/3, ovvero 60x120
- il tag img dell'avatar deve essere generato con width=60 e height=120
- volendo si possono anche calcolare margini e padding da usare nell'eventuale elemento contenitore, per centrare l'immagine etc.

Funziona anche se si tenta di usare un immagine in formato landscape (bassa e larga) per un avatar portrait (alto e stretto) o viceversa, naturalmente in questo caso l'immagine verrà troppo piccola ma non sarà mai deformata.

(questo è il sistema complicato, sono sicuro che ora ci sono librerie che fanno lo stesso lavoro con una sola chiamata ma getimagesize() è di serie su tutti i php e non bisogna litigare con l'admin per installare cose strane...icon_wink.gif .
 
12494759
12494759 Inviato: 2 Ott 2011 18:44
 

Il problema è: se hai una gif animata?
 
12495322
12495322 Inviato: 2 Ott 2011 20:08
 

Dovrebbe funzionare lo stesso... getimagesize() funziona anche con le immagini .gif (almeno finchè si tratta di prendere le misure), e al browser non dovrebbe dare fastidio se un'immagine gif viene ridimensionata a livello di tag. Domani riinstallo tutto l'ambaradam di php, apache e editor, (tanto dovevo farlo da tempo) e faccio una prova, poi ti faccio sapere icon_wink.gif

EDIT: Nel frattempo qui c'è un esempio di come si fa con una libreria extra (ImageMagik):
Link a pagina di Creativearmory.com

L'esempio usa dimensioni fisse per l'immagine target, ma si può usare il mio trucco per scalare le dimensioni senza perdere le proporzioni. A quanto pare a loro getimagesize() funziona bene, quindi resterebbe da vedere solo se il ridimensionamento via html di una immagine gif dà problemi. Ho provato a mettere un'immagine ridimensionata qui sotto, ma a quanto pare (e per fortuna!) "html attivo" non significa quello che pensavo io... icon_mrgreen.gif

comunque il pezzo di html da provare è questo:
Codice:

<img src="http://www.motoclub-tingavert.it/modules/Forums/images/smiles/0509_banana.gif" width="70" height="70">


Se si vede una banana kingsize il gioco è fatto icon_wink.gif

EDIT: l'ho provato con questo editor online, e funziona 0509_campione.gif : Htmledit.squarefree.com

Domani sera riscrivo la funzione e posto il codice di resize, o se preferisci te lo mando per MP icon_wink.gif
 
12496138
12496138 Inviato: 2 Ott 2011 22:39
 

Funzione PHP riscritta (a memoria) e testata, funziona anche con le immagini gif animate icon_cool.gif

Sono solo una ventina di righe esempio compreso, quindi le metto direttamente qui sotto.
Prima però il disclaimer standard per difendersi da pazzi, criminali e seccatori in genere:

"Chi usa questo codice lo fa a suo rischio e pericolo, qualsiasi cosa succeda io non c'entro e non voglio saperne nulla." eusa_whistle.gif

0509_lucarelli.gif

E ora il codice PHP, che non è nulla di speciale 0510_regolamento.gif
Codice:
                                           
function tingaResizeImg($targw,$targh,$img,$template)
{
   $info = getimagesize($img);
   if ($info[0] > $info[1]) {
      $riduzione = $info[0] / $targw;
   } else {
      $riduzione = $info[1] / $targh;
   }
   $w = round($info[0] / $riduzione);
   $h = round($info[1] / $riduzione);
   return sprintf($template, $img, $w, $h);
}


/* ESEMPIO DI CHIAMATA (avatar max 80x60, img ???x???)  */

$format = "<img src='%s' width='%s' height='%s'>";
$file = "http://resources.teachnet.ie/moshea/images/chickn4.gif";
echo tingaResizeImg(80,60,$file,$format);
return;
 
12496475
12496475 Inviato: 3 Ott 2011 7:20
 

Non avevo capito la tua idea: quella funziona ma ha due problemi:
- va chiamata per ogni avatar, al caricamento di un topic (fino a 50 chiamate per pagina)
- ridimensiona solo lato client, e non adatta però le dimensioni in kB dell'immagine

Il problema che spesso incontrano gli utenti è quello di rientrare non tanto nelle dimensioni quanto nel peso: per questo bisogna anche modificare il file e pensavo così di affidarsi a un servizio online già fatto icon_wink.gif
 
12496932
12496932 Inviato: 3 Ott 2011 9:43
 

Non credo che questo sistema sia molto pesante in assoluto, ma capisco che con il volume di traffico del Tinga è meglio servire direttamente la versione leggera dell'avatar.

In questo caso bisogna usare il piano B, ovvero al momento dell'upload smanettare il file con una di quelle librerie che manipolano le immagini (tipo ImageMagik). L'esempio che ho linkato più sopra fa proprio quello, e può sicuramente essere esteso per convertire l'immagine in jpeg compresso. Poi se qualcuno posta un file di 4096*4096 vuol dire che la qualità dell'avatar non sarà ottimale...

La seccatura in questo caso è doversi installare e configurare la libreria, che però a seconda del server potrebbe già essere disponibile.

EDIT: anche la libreria GD che più o meno è "di serie" in tutte le installazioni di PHP dovrebbe essere in grado di fare il lavoro, stasera ci gioco un pò icon_wink.gif

Programmi di image processing online ce ne sono parecchi, basta cercare con google "online photo editor" o meglio ancora "free online photo editor". Bisogna cercare quelli che salvano in jpeg o png con livello di compressione aggiustabile, non chiedono la registrazione, non tentano di installare schifezze sul PC e non rompono le scatole in generale. icon_wink.gif
(io però non vedo il vantaggio di usare questi servizi rispetto a usare programmini semplici e sicuri tipo irfanview sul PC di casa propria)
 
Mostra prima i messaggi di:
Pagina 1 di 1

Non puoi inserire nuovi Topic
Puoi rispondere ai Topic
Non puoi modificare i tuoi messaggi
Non puoi cancellare i tuoi messaggi
Non puoi votare nei sondaggi
 
Indice del forumProposte, uso del Sito e del Forum

Forums ©