2010-11-14 19 views
6

Ok, ho cercato su Internet e StackOverflow ma non riesco a trovare una risposta al mio problema.Nome utente come filigrana

Ho bisogno di filigrana immagini caricate dagli utenti in modo dinamico, ma non voglio solo il testo applicato su un'immagine. Ho bisogno di una filigrana reale come questa: alt text

L'unico modo per ottenere questo effetto è usare Photoshop, aggiungendo ombra e diminuendo il riempimento a 0%. Ma se il mio sito viene visitato da 200 utenti che caricano le loro immagini, non posso creare per ognuno di loro un nuovo file PNG con il loro nome utente. Ecco perché sto cercando una soluzione dinamica per questo problema.

Ho già trovato le classi su come aggiungere un file png come filigrana alle immagini, ma come ho detto prima, questo non funzionerà se il mio sito è visitato da molti utenti.

Spero che qualcuno conosca un modo per risolvere questo e ottenere lo stesso effetto sulle immagini in modo dinamico.

Grazie mille.

risposta

11

La documentazione della libreria di elaborazione immagini ImageMagick includes such a transparent watermark example. Anche se ti piacerebbe utilizzare GD invece di ImageMagick, potrebbe darti un'idea di come farlo.

+0

Grazie per la risposta. Come ho detto prima, so già come aggiungere filigrane dinamicamente a un'immagine. Voglio fare un ulteriore passo avanti e creare dinamicamente un PNG con gli effetti di trasparenza e ombra come vedi qui sopra per ogni utente registrato. – moonwalker

+0

Scusa, non ho visto cosa intendevi per la prima volta. Grazie mille, darò un colpo! – moonwalker

2

È possibile utilizzare imageMagick per eseguire questa operazione con PHP. Fare un po 'Googling per PHP ImageMagick watermarking, questa discussione potrebbe aiutare alcuni: http://www.imagemagick.org/discourse-server/viewtopic.php?f=1&t=17067

Essenzialmente si vuole fare un file PNG del vostro watermark. Il PNG consentirà la trasparenza alfa e potrai ottenere il tuo effetto ombra esterna, ecc.

Questo verrà quindi applicato alla tua immagine JPG e un'immagine JPG finale con filigrana verrà creata con il tuo PNG aggiunto sopra.

Dovrebbe funzionare.

+0

Grazie per la risposta.Come ho detto prima, so già come farlo. Ora ho bisogno di creare dinamicamente il file PNG "watermark" per ogni utente con PHP. :) – moonwalker

0

Le altre risposte qui sono ottime risposte, ma ho voluto proporre un'alternativa.

È possibile creare dinamicamente scripts per the GIMP da eseguire, il che ti dà un sacco di flessibilità. Questo è un modo eccessivo per una filigrana semplice, ma se hai bisogno di fare un po 'più complessa elaborazione delle immagini, è sicuramente un'opzione. CoolText.com è un esempio di un sito web che fa questo.

Lo stesso approccio dovrebbe funzionare anche in Photoshop. In effetti, potresti probabilmente creare un'istanza di Photoshop COM interface with PHP.

Ancora una volta, non lo consiglio per watermarking di base ... solo se avete bisogno di più funzioni rispetto a quello fornito con ImageMagick/GD.

+0

Grazie per le alternative. Li darò un'occhiata. – moonwalker

0

Alle altre risposte aggiungerò che non si dovrebbe generare l'immagine al volo. Se la filigrana è per nome utente, generare una volta il file filigrana quando l'utente si registra per il sito (o cambia il nome utente), quindi utilizzare tale file come sovrapposizione per le immagini caricate. Ciò farà risparmiare molto tempo alla CPU.

+0

Questa è l'idea. Non so come generare un file PNG con trasparenza ed effetto ombra. L'immagine viene creata una volta quando l'utente è registrato (non possono cambiare il loro nome utente) – moonwalker