Início
» LINUX
»
Como converter PNG para JPG no Linux com o ImageMagick
Como converter PNG para JPG no Linux com o ImageMagick
Para converter PNG para JPG no Linux , a opção mais flexível é o ImageMagick. Com o ImageMagick 7, um único arquivo pode ser convertido com `imagemagick.convert()` magick input.png output.jpg, enquanto uma pasta inteira pode ser processada com `imagemagick.convert() magick mogrify -format jpg *.png`. Se o PNG tiver transparência, primeiro aplique uma camada sólida sobre ele, pois o JPEG não suporta canal alfa.
Instalar o ImageMagick no Linux
O ImageMagick está disponível nos repositórios padrão das principais distribuições Linux. Sua documentação atual recomenda o magickprograma como o principal ponto de entrada da linha de comando. As versões dos pacotes variam de acordo com a distribuição e a versão, portanto, sistemas mais antigos ainda podem fornecer comandos do ImageMagick 6, como `imagemagick` converte `imagemagick`, mogrifysem o magickprefixo `--imagemagick`.
Distribuição
Comando de instalação
Ubuntu / Debian
sudo apt update && sudo apt install imagemagick
Fedora
sudo dnf install ImageMagick
Arch Linux
sudo pacman -S imagemagick
openSUSE
sudo zypper install ImageMagick
Instale o ImageMagick usando o gerenciador de pacotes da sua distribuição antes de iniciar a conversão.
Abra um terminal e navegue até a pasta que contém a imagem. Por exemplo:
cd ~/Pictures
Em seguida, converta o arquivo atribuindo uma .jpgextensão à saída:
magick photo.png photo.jpg
Uma conversão básica do ImageMagick mantém o PNG original e cria um novo arquivo JPG.
O arquivo original photo.pngpermanece no lugar porque o comando grava em um arquivo de saída com nome diferente. Para escolher explicitamente a qualidade da compressão JPEG, adicione `--jpeg` -qualityantes do arquivo de saída:
magick photo.png -quality 90 photo.jpg
O ImageMagick aceita valores de qualidade JPEG de 1 a 100. Valores mais altos geralmente preservam mais detalhes, mas produzem arquivos maiores. Consulte a documentação oficial-quality de opções para obter informações sobre o comportamento específico de cada formato.
Converter PNG transparente sem obter um fundo indesejado.
O formato PNG pode armazenar pixels transparentes; o JPEG não. Se a imagem de origem contiver transparência, aplique-a à cor de fundo desejada antes de salvar como JPG. Para um fundo branco, execute:
magick logo.png -background white -alpha remove -alpha off logo.jpg
Achatar os pixels PNG transparentes em branco antes de convertê-los para JPEG, que não possui canal alfa.
A -alpha removeoperação sobrepõe a imagem ao fundo selecionado, -alpha offdesativando o canal alfa na saída. O ImageMagick documenta esses comportamentos em suas opções oficiais de canal alfa .
Converta vários arquivos PNG para JPG de uma só vez.
Para converter todos .pngos arquivos em minúsculas no diretório atual, use mogrify:
magick mogrify -format jpg *.png
O mogrify -format jpgcomando cria arquivos JPG correspondentes a todos os arquivos PNG na pasta atual.
De acordo com a documentação oficialmogrify do ImageMagick , usar -format jpg`--image-png` mantém os arquivos PNG intactos e cria os arquivos JPG correspondentes. Se seus PNGs podem conter transparência, combine as opções:
magick mogrify -background white -alpha remove -alpha off -quality 90 -format jpg *.png
Tenha cuidado se a pasta já contiver arquivos JPG com os mesmos nomes base, pois os novos arquivos de saída podem substituir esses arquivos. Para um fluxo de trabalho mais seguro, salve as conversões em um diretório separado:
mkdir -p jpg
for f in *.png; do
magick "$f" -background white -alpha remove -alpha off -quality 90 "jpg/${f%.png}.jpg"
done
Pequenos detalhes no nome do arquivo que podem causar problemas em um lote.
Os nomes de arquivos no Linux geralmente diferenciam maiúsculas de minúsculas, portanto, o caractere curinga *.pngnormalmente não corresponde a um arquivo que termina em ` .PNG.`. Execute o lote novamente com ` *.PNG--` se necessário. Para um nome de arquivo único contendo espaços, coloque-o entre aspas, por exemplo, `/` magick "Summer Photo.png" "Summer Photo.jpg". Esses detalhes impedem que o shell passe o caminho errado para o ImageMagick.
E se magicknão for encontrado?
Algumas versões antigas do Linux ainda incluem o ImageMagick 6 no pacote. Nesse caso, use `imagemagick` convert photo.png photo.jpgpara uma única imagem e `imagemagick` mogrify -format jpg *.pngpara um lote. Se nenhum dos comandos existir, verifique se o pacote ImageMagick foi instalado corretamente e se seus binários estão no PATH do seu shell PATH.
Para a maioria dos usuários, a regra prática é simples: use magickno ImageMagick 7, aplique a transparência antes de criar os JPEGs e utilize magick mogrify -format jpgquando precisar processar uma pasta inteira rapidamente.