2011-11-27 16 views
10

Sto cercando di aggiungere ombra esterna al testo su un'immagine utilizzando PHP.Ombra esterna sul testo

Sono consapevole di come aggiungere del testo alle immagini e di come alcune librerie consentono di aggiungere il blocco di ombreggiatura, ma non riesco a vederle che consentano di aggiungere un'ombreggiatura sbiadita.

È possibile?

risposta

2

GD non può farlo fuori dalla scatola. Se è possibile, utilizzare ImageMagick. Esempi su come creare ombre sagomate here.

+0

Come potrei fare per utilizzare i bit di sopra della linea di comando in PHP, non riesco a vedere nulla su http: // php.net/manual/en/bo ok.imagick.php che mi aiuterebbe. – user984580

+0

@user buona domanda. Non conosco l'estensione PHP quindi non so - * forse * usando ['ShadowImage'] (http://www.php.net/manual/en/function.imagick-shadowimage.php), ma io non sono sicuro –

12

Quello che vuoi è Imagick :: ShadowImage (float $ opacità, galleggiare $ sigma, int $ x, int $ y)

Ecco un esempio in cui ho messo un'ombra su un testo e poi sovrappongo che in un'immagine di sfondo ...

$background_layer = new Imagick('poster_pic_01.jpg'); # background image 

$text_layer = new Imagick('transparent400.png'); # empty transparent png of the same size 
$text_layer->annotateImage($ImagickDraw, $pad_left, $pad_top, 0, "Your text here"); 

/* create drop shadow on it's own layer */ 
$shadow_layer = $text_layer->clone(); 
$shadow_layer->setImageBackgroundColor(new ImagickPixel('black')); 
$shadow_layer->shadowImage(75, 5, 5, 5); 

/* composite original text_layer onto shadow_layer */ 
$shadow_layer->compositeImage($text_layer, Imagick::COMPOSITE_OVER, 0, 0); 

/* composite shadow_layer (which now has text AND the shadow) onto image_layer */ 
$background_layer->compositeImage($shadow_layer, Imagick::COMPOSITE_OVER, 0, 0); 

Spero che questo aiuti,

Roger

+0

Funziona come un fascino! –

Problemi correlati