Biblioteca Go de processamento de imagens de alto nível de código aberto
Go API que permite rotação de imagens, Fit imagens, criação de miniaturas de imagem, zoom na imagem, incorporar ou estender uma imagem, adicionar efeitos de desfoque a uma imagem e muito mais.
bimg é uma biblioteca Go de processamento de imagens de alto nível de código aberto que fornece a capacidade de ler e manipular imagens com apenas algumas linhas de código Go. A biblioteca é menor em tamanho, mas produz resultados muito bem organizados e eficientes. A biblioteca é muito rápida em comparação com outras bibliotecas disponíveis que exigem memória muito pequena para concluir a tarefa.
O bimg é uma biblioteca C de alto nível que é construída em cima da libvips, que é uma biblioteca muito poderosa para processamento de imagens. Ele oferece suporte para a leitura de alguns formatos de arquivo de imagem muito populares como JPEG, PNG, WEBP, TIFF, PDF, GIF, SVG, etc. Você também pode exportar facilmente imagens para os formatos JPEG, PNG, WEBP, bem como para imagens transparentes.
A biblioteca bimg inclui suporte para vários recursos importantes de processamento de imagem, como redimensionamento de imagens, ampliação da imagem, corte de imagem incluindo suporte para corte inteligente, virar ou girar imagens, criar miniaturas de imagem, suporte para zoom de imagem, adicionar marca d'água e efeito de desfoque gaussiano, extrair área de uma imagem, aparar imagens, conversão de imagem para outros formatos e muito mais.
Introdução ao bimg
A maneira mais fácil e recomendada de instalar o bimg é via GitHub.
Instale o bimg pelo GitHub
go get -u gopkg.in/h2non/bimg.v1
Conversão de imagem para outros formatos via Go
A biblioteca bimg de código aberto permite que os desenvolvedores de software convertam imagens programaticamente para outros formatos de arquivo suportados com apenas algumas linhas de código Go. Vamos supor que você tenha um formato JPEG e queira convertê-lo para PNG. Você precisa fornecer informações de imagem, como nome da imagem, endereço e formato de conversão. A imagem será convertida com sucesso para o formato sugerido com facilidade.
converter JPG imagens para NG via Go Library
buffer, err := bimg.Read("image.jpg")
if err != nil {
fmt.Fprintln(os.Stderr, err)
}
newImage, err := bimg.NewImage(buffer).Convert(bimg.PNG)
if err != nil {
fmt.Fprintln(os.Stderr, err)
}
if bimg.NewImage(newImage).Type() == "png" {
fmt.Fprintln(os.Stderr, "The image was converted into png")
}
Cortar ou redimensionar imagens
A biblioteca bimg gratuita oferece aos desenvolvedores de software a capacidade de redimensionar e recortar suas imagens dentro de seus próprios aplicativos Go. Você também precisa fornecer a largura e a altura da nova imagem e o local. Ele também suporta operações de redimensionamento forçadas sem preservar a proporção. Você também pode adicionar texto e extrair a área de sua escolha de uma imagem. Cortar corta a imagem no tamanho exato especificado.
Resize a imagem através da biblioteca Go
buffer, err := bimg.Read("image.jpg")
if err != nil {
fmt.Fprintln(os.Stderr, err)
}
newImage, err := bimg.NewImage(buffer).Resize(800, 600)
if err != nil {
fmt.Fprintln(os.Stderr, err)
}
size, err := bimg.NewImage(newImage).Size()
if size.Width == 800 && size.Height == 600 {
fmt.Println("The image size is valid")
}
bimg.Write("new.jpg", newImage)
Adicionando marcas d'água a imagens
A API bimg incluiu funcionalidade para adicionar marcas d'água a imagens dentro de aplicativos Go com facilidade. Adicionar uma marca d'água é um recurso muito útil para proteger suas imagens. A marca d'água é a maneira mais fácil e muito útil de proteger suas fotos na internet. Você pode facilmente colocar um logotipo ou marca d'água de texto. A biblioteca ajuda você a adicionar programaticamente uma marca d'água à sua imagem em qualquer posição selecionada, bem como a opacidade.
Adicionar Watermark para Imagem via Go API
buffer, err := bimg.Read("image.jpg")
if err != nil {
fmt.Fprintln(os.Stderr, err)
}
watermark := bimg.Watermark{
Text: "Chuck Norris (c) 2315",
Opacity: 0.25,
Width: 200,
DPI: 100,
Margin: 150,
Font: "sans bold 12",
Background: bimg.Color{255, 255, 255},
}
newImage, err := bimg.NewImage(buffer).Watermark(watermark)
if err != nil {
fmt.Fprintln(os.Stderr, err)
}
bimg.Write("new.jpg", newImage)
Virar e girar imagens
A biblioteca bimg de código aberto oferece aos desenvolvedores de software a capacidade de girar suas imagens de acordo com suas necessidades usando comandos da linguagem Go. Existe um método para rotação automática da imagem. A função AutoRotate gira automaticamente a imagem sem transformação adicional com base nos metadados de orientação EXIF, se disponíveis. Ele também oferece suporte para imagens flip ou flop, interpretação de imagem, comprimento de imagem, metadados de imagem e muito mais.
Girar imagem dentro de Go Apps
buffer, err := bimg.Read("image.jpg")
if err != nil {
fmt.Fprintln(os.Stderr, err)
}
newImage, err := bimg.NewImage(buffer).Rotate(90)
if err != nil {
fmt.Fprintln(os.Stderr, err)
}
bimg.Write("new.jpg", newImage)