Quali fattori dovrei considerare per aumentare le prestazioni nel ridimensionamento delle immagini?

6

Sto configurando un'app Web in cui le persone caricheranno le immagini. Una volta caricate, le immagini saranno filigranate e ridimensionate più volte (miniature, dimensioni diverse ecc.) E infine caricate su Amazon S3 per l'archiviazione.

L'app web è scritta in Python con il framework Tornado, non voglio davvero bloccare i thread di Tornado con l'elaborazione delle immagini, quindi lo invierò a uno script separato (e forse anche a server separati ) utilizzando Gearman (ho sviluppato un client async-gearman per Python / Tornado).

Uno dei vantaggi di Gearman è che è possibile avviare lavori in più lingue, quindi l'elaborazione e il caricamento effettivi dell'immagine potrebbero essere fatti in etere Python, Ruby, PHP, Perl, Java, C o qualcos'altro.

Questo lascia la domanda, è meglio per il lavoro? Ci sono alcune librerie disponibili solo per lingue specifiche che sono particolarmente adatte al ridimensionamento delle immagini? La cosa più importante saranno le prestazioni: vorremmo essere in grado di eseguire quanti più lavori possibile su un server. Ci sono altri fattori che dovrei guardare?

Preferirei stare con Python, Ruby o PHP perché è quello che mi è familiare, ma se il guadagno di prestazioni derivante dal farlo in Java / C è abbastanza buono, sarei d'accordo con l'implementazione in questo modo.

Sono non in cerca di esempi di codice, posso trovarli personalmente, ma vorrei sapere se ci sono grosse differenze tra le librerie di elaborazione delle immagini. So che probabilmente PHP è il più facile da usare con GD, e ho usato un paio di librerie Python prima e sembrano ok. Non ho mai fatto nulla con le immagini in Ruby.

    
posta Smudge 07.09.2011 - 12:26
fonte

1 risposta

2

Penso che ci siano molte librerie in molte lingue per farlo, e funzionano tutte abbastanza bene.

Ciò che probabilmente dovresti cercare è solo un processore di immagini per la piattaforma su cui host la tua applicazione. Questo sarà il metodo più efficiente e più supportato.

ImageMagick è solo uno dei tanti esempi. Molte società di hosting di terze parti hanno già installato e disponibile per le applicazioni.

    
risposta data 07.09.2011 - 14:37
fonte

Leggi altre domande sui tag