Recentemente estou usando JS para fazer coisas divertidas e preciso processar imagens. Existem muitos tutoriais na Internet com vários métodos, e alguns métodos podem não funcionar necessariamente. Este artigo compartilhará com você um método verificado pelo autor para usar NodeJS para processar imagens.
npm i gm
gm é uma biblioteca Node que fornece algumas APIs JS para que os desenvolvedores possam processar imagens. Mas depende do GraphicsMagick ou ImageMagick por baixo. Na verdade, gm é a linha de comando para chamar essas duas ferramentas.
Em outras palavras, além de instalar o gm, também precisamos instalar o GraphicsMagick ou o ImageMagick.
ImagemMagickO autor está no MacOS e optou diretamente por instalar o ImageMagick.
De acordo com o comando do site oficial, apenas 1 linha de código é necessária (desde que você tenha instalado o brew no seu Mac):
preparar instalar imagemagick --with-webp
Deixe-me apresentar o parâmetro --with-webp
. Você pode excluí-lo, mas se quiser processar imagens no formato webp, deverá adicioná-lo.
É mais conveniente usar o brew. Você não precisa se preocupar com variáveis de ambiente.
GráficosMagick
Claro, se você não usa o ImageMagick, você pode usar o GraphicsMagick:
preparar instalação gráficamagick
No começo optei por instalar o ImageMagick, e quando escrevi isso, sempre recebia um erro:
const gm = requer('gm'); gm('Caminho do arquivo de imagem').crop(largura, altura, 0, 0).resize(largura2, altura2).qualidade(qualidade).write('Caminho do arquivo de saída', function (err) { se (errar) { retornar console.log(erro); } outro { console.log('sucesso'); } });
Se você quiser usar o ImageMagick, a forma de escrever acima está realmente errada. Você deve escrever assim, especificando claramente que desejo usar a ferramenta ImageMagick
:
const g = requer('gm'); const gm = g.subClass({imageMagick: true}); gm('Caminho do arquivo de imagem').crop(largura, altura, 0, 0).resize(largura2, altura2).qualidade(qualidade).write('Caminho do arquivo de saída', function (err) { se (errar) { retornar console.log(erro); } outro { console.log('sucesso'); } });
Registre as funções comumente usadas do gm para sua referência:
Nota: gm pode ser chamado em cadeia e é muito divertido de escrever. Ele lê o arquivo de imagem de gm (nome do arquivo), processa-o camada por camada e, finalmente, grava-o no arquivo.write(nome do arquivo, retorno de chamada).
Ampliar imagem
.resize(width, height)
Cortar imagem
.crop(width, height, x, y)
Girar imagem
.rotate(color, deg)
color é a cor de fundo (se o ângulo de rotação em graus não for múltiplo de 90, a cor de fundo será útil, basta usar o formato '#ededed')