Ik heb enkele PNG-afbeeldingen met transparantie en ik moet versies maken met de afbeeldingslaag op een witte achtergrond. Ik heb verschillende dingen geprobeerd met Image Magick “convert”-bewerkingen, maar er gebeurt helemaal niets of ik krijg een foutmelding. Ik wil niet naar een tussenliggende JPG-vorm gaan omdat ik de artefacten niet wil. Het is natuurlijk gemakkelijk om dit in Gimp of Photoshop of wat dan ook te doen, maar ik zou het liever vanaf de opdrachtregel scripten omdat er veel van deze dingen zijn.
Een voorbeeld van een niet-werkende Image Magick-opdracht is:
convert img1.png -background white -flatten img1-white.png
Dat resulteert in een fout.
Bedankt!
Antwoord 1, autoriteit 100%
-background white -alpha remove -alpha off
Voorbeeld:
convert image.png -background white -alpha remove -alpha off white.png
Voel je vrij om white
te vervangen door een andere kleur die je wilt. Imagemagick-documentatie zegt dit over de bewerking -alpha remove
:
Deze handeling is eenvoudig en snel, en doet het werk zonder dat het nodig is
extra geheugengebruik of andere bijwerkingen die ermee gepaard kunnen gaan
met alternatieve technieken voor het verwijderen van transparantie. Het is dus de
voorkeursmanier om de transparantie van afbeeldingen te verwijderen.
Antwoord 2, autoriteit 66%
Dit werkt voor mij:
convert -flatten img1.png img1-white.png
Documentatiereferenties:
-flatten
opdrachtregeloptie-layers
opdrachtregeloptie(-flatten
is gelijk aan-layers flatten
)
Antwoord 3, autoriteit 10%
Afbeelding afvlakken en achtergrondafbeelding toepassen is eenvoudig in ImageMagick
De volgorde van de opdrachten is echter erg belangrijk
Als u een achtergrond op een transparante afbeelding wilt toepassen en deze plat wilt maken, past u eerst de achtergrond toe en maakt u deze vervolgens plat. Het omgekeerde werkt niet.
$ convert sourceimage.png -background BackgroundColor -flatten destinationimage.png
Antwoord 4, autoriteit 5%
De enige die voor mij werkte, was een mix van alle antwoorden:
convert in.png -background white -alpha remove -flatten -alpha off out.png
Antwoord 5, autoriteit 4%
Hier leest u hoe u dezelfde afbeelding in alle mappen in een map kunt vervangen door wit in plaats van transparant:
mogrify -background white -flatten */*.png
Antwoord 6, autoriteit 2%
Het gebruik van -flatten maakte me helemaal gek omdat -flatten in combinatie met mogrify crop en resizing gewoon niet werkt. De officiële en voor mij enige juiste manier is om het alfakanaal te “verwijderen”.
-alpha remove -alpha off (niet nodig bij JPG)
Zie documentatie: http://www.imagemagick.org/Usage/masking/#remove
7
Het is -Alpha uit, niet -Alfa verwijderen! IOS App Store-upload mislukt wanneer er een alfakanaal in een pictogram is !!
Hier is hoe het te doen:
mogrify -Alpha off * .png