Go API para processamento de imagem baseado em HTTP
Biblioteca Go de código aberto compatível com corte inteligente on-line, virar ou girar imagens, criar miniaturas de imagem, zoom de imagem, adicionar marca d'água a PNG, WEBP, TIFF, PDF, GIF e SVG etc.
O imaginário é uma API Go de processamento de imagem baseada em HTTP de código aberto muito poderosa que dá aos desenvolvedores de software o poder de realizar operações avançadas de imagem por meio de serviços HTTP privados ou públicos com menor dependência. Ele suporta operações avançadas como autorização de token de API, proteção de assinatura de URL, estratégia de aceleração de tráfego HTTP e suporte CORS para clientes da web. A biblioteca pode ler imagens de cargas úteis HTTP POST, caminhos locais do servidor ou servidores HTTP remotos.
O imaginário é uma biblioteca poderosa e estável construída em cima da libvips um processamento de imagem rápido e eficiente. A biblioteca inclui suporte para formatos de imagem como JPEG, PNG, HEIF, WEBP, TIFF, PDF, GIF e SVG, bem como conversão transparente entre eles. Ele forneceu suporte completo para Docker & Fly.io. O melhor do Fly é que ele pode diminuir a latência e fornecer melhores práticas ao atender o tráfego próximo à localização do usuário.
A biblioteca imaginária oferece suporte completo a vários recursos importantes relacionados à criação, conversão e manipulação de imagens, como redimensionamento de imagens, ampliação de imagens, recorte de imagens, recorte inteligente, rotação de imagens, Rotação automática com outras transformações de imagem, inversão automática baseada em metadados EXIF, flop, imagens de zoom, criar miniaturas de imagens, ajustar imagens, incorporar ou estender uma imagem, adicionar imagem de marca d'água, adicionar efeitos de desfoque a uma imagem e muito mais.
Começando com o imaginário
A maneira mais fácil e recomendada de instalar o imaginário é via GitHub.
Instale imaginário via GitHub
go get -u github.com/h2non/imaginary
Converter imagens para outros formatos via Go
A biblioteca imaginária da API de código aberto inclui suporte para converter suas imagens em outros formatos de arquivo suportados com facilidade. Você pode salvar imagens em alguns formatos muito úteis, como os formatos JPEG, PNG e WEBP. A biblioteca forneceu suporte à conversão com configurações adicionais de qualidade e compactação. Você só precisa fornecer o nome da imagem, endereço e formato de conversão corretos e a biblioteca irá convertê-lo facilmente para você com apenas alguns comandos Go.
Converter Imagem via Biblioteca Imaginária
func Convert(buf []byte, o ImageOptions) (Image, error) {
if o.Type == "" {
return Image{}, NewError("Missing required param: type", http.StatusBadRequest)
}
if ImageType(o.Type) == bimg.UNKNOWN {
return Image{}, NewError("Invalid image type: "+o.Type, http.StatusBadRequest)
}
opts := BimgOptions(o)
return Process(buf, opts)
}
Corte de imagem online via Go
A biblioteca imaginária de código aberto permite que desenvolvedores de software cortem suas imagens online com apenas algumas linhas de código Go dentro de seus próprios aplicativos. Você pode cortar sua imagem fornecendo largura ou altura personalizada. A biblioteca facilita seu trabalho mantendo a proporção da imagem. A biblioteca também suporta o corte da imagem usando o algoritmo de corte inteligente integrado da libvips. Você também pode definir o nível de compactação de imagem para imagens PNG e inverter, flopar e girar suas imagens com facilidade.
Retirar imagem via Go Library
{
"operation": "crop",
"params": {
"width": 500,
"height": 300
}
Redimensionar imagens para caber
A biblioteca imaginária gratuita incluiu suporte para redimensionar imagens para caber usando comandos Go dentro de seus aplicativos. Você pode redimensionar facilmente uma imagem para caber na largura e na altura, sem cortar. A biblioteca facilita seu trabalho mantendo a proporção da imagem. A largura e a altura especificam uma caixa delimitadora máxima para a imagem.
Resize a imagem através da biblioteca Go Free
func Resize(buf []byte, o ImageOptions) (Image, error) {
if o.Width == 0 && o.Height == 0 {
return Image{}, NewError("Missing required param: height or width", http.StatusBadRequest)
}
opts := BimgOptions(o)
opts.Embed = true
if o.IsDefinedField.NoCrop {
opts.Crop = !o.NoCrop
}
return Process(buf, opts)
}
Gire e gire automaticamente suas imagens
A biblioteca imaginária gratuita forneceu funcionalidade para girar suas imagens com facilidade. Ele também incluiu uma função muito útil para auto-rotação de imagens dentro de aplicativos Go. Ele gira automaticamente a imagem sem mais transformações de imagem com base nos metadados de orientação EXIF. O método AutoRotate produz uma nova imagem com o mesmo tamanho e formato da imagem de entrada.
Auto-Rotate Imagem via Free Go Library
func AutoRotate(buf []byte, o ImageOptions) (out Image, err error) {
defer func() {
if r := recover(); r != nil {
switch value := r.(type) {
case error:
err = value
case string:
err = errors.New(value)
default:
err = errors.New("libvips internal error")
}
out = Image{}
}
}