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.