Tôi muốn có thể phát hiện xem hình ảnh có trong suốt hay không bằng cách sử dụng tiện ích mở rộng Imagick PHP.PHP imagick phát hiện độ trong suốt
Cho đến giờ, may mắn duy nhất tôi có là chạy lệnh exec()/một số lệnh khác và sử dụng công cụ dòng lệnh ImageMagick để đạt được điều này. Dưới đây là ý tôi:
exec("identify -verbose example_transparent_image.png | grep \"Alpha\"", $output);
$is_transparent = !empty($output) ? true : false;
Logic đơn giản. Thực hiện kiểm tra chi tiết trên hình ảnh được đề cập: nếu đầu ra chứa bất kỳ thông tin alpha nào, điều đó có nghĩa là nó sử dụng tính minh bạch.
Dường như phần mở rộng hình ảnh PHP nên có điều này như một trong các lệnh của nó, nhưng thiếu tài liệu đang giết tôi. Có vẻ ngớ ngẩn khi phải chạy loại kiểm tra này mỗi lần.
Tự mình chạy vào vấn đề chính xác này, tôi đã chạy qua cả hai định dạng và getimagealphachannel. Identifyimage chỉ đơn giản là không cung cấp đủ thông tin, trong khi getimagealphachannel hoạt động tốt. Về mặt lý thuyết, getImageAlphaChannel() cung cấp một hằng số ALPHACHANNEL, nhưng tài liệu là, thẳng thắn, rác trong khía cạnh này. Tôi nhận được '0' cho JPG, '1' cho PNG có alpha và '0' cho 32 bit không có alpha. Về cơ bản, kết quả mong đợi hoàn hảo. Vì vậy, mặc dù đây là câu hỏi trả lời 10 tháng hiện tại, tôi nghĩ rằng nó đáng giá thêm 2 xu của tôi. –