2011-11-27 15 views
10

Tôi đang tìm cách thêm bóng đổ vào văn bản trên hình ảnh bằng cách sử dụng PHP.Thả bóng trên văn bản

Tôi biết cách thêm văn bản vào hình ảnh và cách một số thư viện cho phép bạn thêm chặn bóng, nhưng tôi không thể thấy bất kỳ thư nào cho phép bạn thêm bóng mờ nhạt.

Điều này có khả thi không?

Trả lời

2

GD không thể thực hiện việc này ra khỏi hộp. Nếu bạn có thể, hãy sử dụng ImageMagick. Ví dụ về cách tạo bóng hình dạng here.

+0

Làm thế nào tôi sẽ đi về việc sử dụng các bit trên dòng lệnh trong PHP, tôi không thể nhìn thấy bất cứ điều gì trên http: // php.net/manual/en/bo ok.imagick.php có thể giúp tôi. – user984580

+0

@user câu hỏi hay. Tôi không biết phần mở rộng PHP vì vậy tôi không biết - * có thể * bằng cách sử dụng ['ShadowImage'] (http://www.php.net/manual/en/function.imagick-shadowimage.php), nhưng tôi 'tôi không chắc. –

12

gì bạn muốn Imagick :: ShadowImage (float $ opacity, nổi $ sigma, int $ x, int $ y) là

Dưới đây là một ví dụ mà tôi đặt một bóng thả vào một số văn bản và sau đó chồng rằng trên một hình ảnh nền ...

$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); 

Hope this helps,

Roger

+0

Hoạt động như một sự quyến rũ! –

Các vấn đề liên quan