Go API para el procesamiento de imágenes basado en HTTP
Biblioteca Go de código abierto que admite el recorte inteligente en línea, voltear o rotar imágenes, crear miniaturas de imágenes, hacer zoom en imágenes, agregar marcas de agua a PNG, WEBP, TIFF, PDF, GIF y SVG, etc.
The imaginary es una potente API Go de procesamiento de imágenes basada en HTTP de código abierto que brinda a los desarrolladores de software el poder de realizar operaciones de imagen avanzadas a través de servicios HTTP privados o públicos con menor dependencia. Admite operaciones avanzadas como autorización de token de API, protección de firma de URL, estrategia de aceleración de tráfico HTTP y compatibilidad con CORS para clientes web. La biblioteca puede leer imágenes de cargas HTTP POST, rutas locales del servidor o servidores HTTP remotos.
The imaginary es una biblioteca potente y estable construida sobre libvips para un procesamiento de imágenes rápido y eficiente. La biblioteca ha incluido soporte para formatos de imagen como JPEG, PNG, HEIF, WEBP, TIFF, PDF, GIF y SVG, así como conversión transparente entre ellos. Ha proporcionado soporte completo para Docker & Fly.io. Lo mejor de Fly es que puede disminuir la latencia y brindar mejores prácticas al brindar tráfico cerca de la ubicación de su usuario.
La biblioteca imaginaria es totalmente compatible con varias características importantes relacionadas con la creación, conversión y manipulación de imágenes, como el cambio de tamaño de imagen, la ampliación de imágenes, el recorte de imágenes, el recorte inteligente, la rotación de imágenes, la rotación automática con más transformaciones de imágenes, el volteo automático basado en metadatos EXIF, la imagen gire, haga zoom en imágenes, cree miniaturas de imágenes, ajuste imágenes, incruste o amplíe una imagen, agregue una imagen de marca de agua, agregue efectos de desenfoque a una imagen y mucho más.
Empezando con lo imaginario
La forma más fácil y recomendada de instalar imaginary es a través de GitHub.
Instalar imaginario a través de GitHub
go get -u github.com/h2non/imaginary
Convierta imágenes a otros formatos a través de Go
La biblioteca imaginaria de API de código abierto ha incluido soporte para convertir sus imágenes a otros formatos de archivo compatibles con facilidad. Puede guardar imágenes en algunos formatos muy útiles, como los formatos JPEG, PNG y WEBP. La biblioteca ha brindado soporte de conversión con configuraciones adicionales de calidad y compresión. Solo necesita proporcionar el nombre de imagen, la dirección y el formato de conversión correctos y la biblioteca lo convertirá fácilmente con solo un par de comandos Go.
Convertir la imagen a través de la biblioteca imaginaria
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)
}
Recorte de imágenes en línea a través de Go
La biblioteca imaginaria de código abierto permite a los desarrolladores de software recortar sus imágenes en línea con solo un par de líneas de código Go dentro de sus propias aplicaciones. Puede recortar su imagen proporcionando un ancho o alto personalizado. La biblioteca facilita su trabajo al mantener la relación de imagen. La biblioteca también admite recortar la imagen mediante el algoritmo de recorte inteligente incorporado de libvips. También puede definir el nivel de compresión de imágenes para imágenes PNG y voltear, voltear y rotar sus imágenes con facilidad.
Imagen cayendo a través de la Biblioteca Go
{
"operation": "crop",
"params": {
"width": 500,
"height": 300
}
Redimensionar imágenes para ajustar
La biblioteca imaginaria gratuita ha incluido soporte para cambiar el tamaño de las imágenes para que se ajusten usando los comandos Go dentro de sus aplicaciones. Puede cambiar fácilmente el tamaño de una imagen para que se ajuste al ancho y alto, sin recortar. La biblioteca facilita su trabajo al mantener la relación de aspecto de la imagen. El ancho y la altura especifican un cuadro delimitador máximo para la imagen.
Recuperar la imagen a través de la biblioteca de Go Gratis
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 y autorrote sus imágenes
La biblioteca imaginaria gratuita ha proporcionado funcionalidad para rotar sus imágenes con facilidad. También ha incluido una función muy útil para autorrotar imágenes dentro de las aplicaciones de Go. Rota automáticamente la imagen sin más transformaciones de imagen basadas en metadatos de orientación EXIF. El método AutoRotate produce una nueva imagen con el mismo tamaño y formato que la imagen de entrada.
Auto-Rotate Imagen a través de la biblioteca de Go libre
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{}
}
}