Vervang transparantie in PNG-afbeeldingen door een witte achtergrond

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 whitete 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:


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

Other episodes