2011-10-11 48 views
7

Tôi sử dụng mã này để tạo hình ảnh từ hình ảnh png khác, nền mặc định là màu đen. Câu hỏi của tôi là làm thế nào để thiết lập một nền trong suốt?PHP imagecopy với nền trong suốt

$input = imagecreatefrompng('image.png'); 
$output = imagecreatetruecolor(50, 50); 

imagecopy($output, $input, 4,0, 8,8, 8,8); 
imagecopy... etc. 

header('Content-Type: image/png'); 
imagepng($output); 

Có cách nào dễ dàng để thực hiện việc này không? Cảm ơn

Trả lời

11

Đặt màu trong suốt ở hình ảnh nhất định.

int imagecolortransparent (resource $image [, int $color ]) 

Đây là link

+1

Có! Điều này làm việc: '$ black = imagecolorallocate ($ output, 0, 0, 0); imagecolortransparent ($ output, $ black); 'trước khi imagecopy – 2by

8

Kể từ khi chức năng PHP imagecopymerge không làm việc với kênh Alpha, bạn sẽ muốn sử dụng chức năng từ những nhận xét đầu tiên trên trang này imagecopymerge_alpha: http://php.net/manual/en/function.imagecopymerge.php

Chỉ cần có hình ảnh minh bạch như là cơ sở và hợp nhất nó với hình ảnh bạn cần.

Tôi đã dùng thử và nó hoạt động tốt cho một dự án của tôi.

+0

này làm việc cho tôi. – sinsuren

+0

Làm việc cho tôi. –

2
imagealphablending($input, true); 
imagesavealpha($input, true); 

imagealphablending($output, true); 
imagesavealpha($output, true); 
+4

Điều này là không chính xác, uốn phải được đặt thành' false' trước khi chạy 'imagesagealpha'. – Martin

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