Jawaban:
Gunakan -negate
opsi:
convert input.png -channel RGB -negate output.png
The -negate
pilihan menggantikan setiap pixel dengan warna komplementer. The -channel RGB
pilihan yang diperlukan pada ImageMagick 7 untuk mencegah alpha channel (jika ada) dari yang menegasikan. (Terima kasih kepada @yoya untuk wawasan ini!)
Lihat juga dokumentasi untuk -negate
.
-channel RGB -negate
untuk menghindari itu.
-channel RGB
tidak perlu. Itu hanya membalikkan saluran alpha jika saya lewat -channel RGBA -negate
. Saya tidak yakin apa yang menjelaskan perilaku yang berbeda.
identify
melihat input sebagai "8-bit sRGB", outputnya adalah "8-bit Grayscale Grey".
ImageMagick 6.x dapat membalikkan intensitas warna dengan opsi -negate saja. ref) https://www.imagemagick.org/script/command-line-options.php#negate
convert input.png -negate output.png
ImageMagick 7.x membutuhkan opsi -channel dengan -negate. ref) https://imagemagick.org/script/porting.php#cli Opsi yang Diubah
convert input.png -channel RGB -negate output.png
Ini karena saluran aktif default berisi transparansi (buram / alfa) di ImageMagick 7.x
ImageMagick6: DefaultChannels = ((AllChannels | SyncChannels) &~ OpacityChannel)
ImageMagick7: DefaultChannels = AllChannels
Sebagian besar algoritma memperbarui saluran merah, hijau, biru, hitam (untuk CMYK), dan alfa. Kegunaan -negate tampaknya dikorbankan untuk konsistensi keseluruhan.
Lebih detail untuk Anda. http://blog.awm.jp/2018/11/18/im7negate/
convert input.png -negate output.png
berfungsi dengan baik untuk saya di ImageMagick 7.0.8 (ArchLinux)
identify -verbose input.png | grep Type
Ini menggunakan TrueColor atau TrueColorAlpha.
-channel RGB
jawaban saya.