Câu trả lời:
Sử dụng -negate
tùy chọn:
convert input.png -channel RGB -negate output.png
Các -negate
tùy chọn thay thế mỗi pixel với màu bổ sung của nó. Các -channel RGB
tùy chọn là cần thiết như của ImageMagick 7 để ngăn chặn các kênh alpha (nếu có) không bị phủ nhận. (Cảm ơn @yoya vì cái nhìn sâu sắc này!)
Xem thêm các tài liệu cho -negate
.
-channel RGB -negate
để tránh điều đó.
-channel RGB
không cần thiết. Nó chỉ đảo kênh alpha nếu tôi vượt qua -channel RGBA -negate
. Tôi không chắc điều gì giải thích cho hành vi khác nhau.
identify
xem đầu vào là "8 bit sRGB", thì đầu ra là "Xám xám 8 bit".
ImageMagick 6.x chỉ có thể đảo ngược cường độ màu với tùy chọn -negate. tham chiếu) https://www.imagemagick.org/script/command-line-options.php#negate
convert input.png -negate output.png
ImageMagick 7.x yêu cầu tùy chọn -channel với -negate. ref) https://imagemagick.org/script/porting.php#cli Tùy chọn thay đổi
convert input.png -channel RGB -negate output.png
Điều này là do các kênh hoạt động mặc định chứa độ trong suốt (mờ / alpha) trong ImageMagick 7.x
ImageMagick6: DefaultChannels = ((AllChannels | SyncChannels) &~ OpacityChannel)
ImageMagick7: DefaultChannels = AllChannels
Hầu hết các thuật toán cập nhật các kênh màu đỏ, xanh lá cây, xanh dương, đen (cho CMYK) và alpha. Khả năng sử dụng của -negate dường như được hy sinh cho tính nhất quán tổng thể.
Chi tiết hơn cho bạn. http://blog.awm.jp/2018/11/18/im7negate/
convert input.png -negate output.png
hoạt động tốt với tôi trên ImageMagick 7.0.8 (ArchLinux)
identify -verbose input.png | grep Type
Nó xuất hiện TrueColor hoặc TrueColorAlpha.
-channel RGB
câu trả lời của tôi.