Go API для обробки зображень на основі HTTP

Бібліотека Go з відкритим кодом, яка підтримує інтелектуальне обрізання в Інтернеті, перевертання або обертання зображень, створення ескізів зображень, масштабування зображень, додавання водяних знаків до PNG, WEBP, TIFF, PDF, GIF і SVG тощо.

The imaginary — це дуже потужний Go API обробки зображень на основі HTTP з відкритим вихідним кодом, який дає розробникам програмного забезпечення можливість виконувати розширені операції із зображеннями через приватні чи загальнодоступні служби HTTP з меншою залежністю. Він підтримує такі розширені операції, як авторизація маркерів API, захист підпису URL-адреси, стратегія обмеження трафіку HTTP та підтримка CORS для веб-клієнтів. Бібліотека може читати зображення з корисних даних HTTP POST, локальних шляхів сервера або віддалених серверів HTTP.

The imaginary — це потужна та стабільна бібліотека, створена на основі libvips для швидкої та ефективної обробки зображень. Бібліотека включає підтримку таких форматів зображень, як JPEG, PNG, HEIF, WEBP, TIFF, PDF, GIF і SVG, а також прозоре перетворення між ними. Він забезпечив повну підтримку Docker & Fly.io. Чудова перевага Fly полягає в тому, що він може зменшити затримку та забезпечити кращий досвід, обслуговуючи трафік поблизу місцезнаходження вашого користувача.

Уявна бібліотека повністю підтримує кілька важливих функцій, пов’язаних із створенням, перетворенням і маніпулюванням зображеннями, такими як зміна розміру зображення, збільшення зображення, кадрування зображення, розумне кадрування, обертання зображень, автоповорот із подальшими перетвореннями зображень, автоматичне перевертання на основі метаданих EXIF, зображення флоп, масштабування зображень, створення ескізів зображень, підгонка зображень, вбудовування або розширення зображення, додавання зображення водяного знака, додавання ефектів розмиття до зображення та багато іншого.

Previous Next

Початок роботи з уявою

Найпростіший і рекомендований спосіб встановлення imaginary — через GitHub.

Встановіть imaginary через GitHub

go get -u github.com/h2non/imaginary

Перетворюйте зображення в інші формати через Go

Уявна бібліотека API із відкритим вихідним кодом містить підтримку для легкого перетворення ваших зображень в інші підтримувані формати файлів. Ви можете зберігати зображення в дуже корисних форматах, таких як JPEG, PNG і WEBP. Бібліотека надала підтримку перетворення з додатковими параметрами якості та стиснення. Вам просто потрібно вказати правильну назву зображення, адресу та формат перетворення, і бібліотека легко перетворить його за вас за допомогою лише кількох команд Go.

Перетворення зображення за допомогою вагінальної бібліотеки

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)
}

Обрізання зображень онлайн через Go

Уявна бібліотека з відкритим вихідним кодом дозволяє розробникам програмного забезпечення обрізати свої зображення онлайн за допомогою лише кількох рядків коду Go у власних програмах. Ви можете обрізати своє зображення, вказавши власну ширину або висоту. Бібліотека полегшує вашу роботу, зберігаючи співвідношення зображення. Бібліотека також підтримує кадрування зображення за допомогою вбудованого в libvips інтелектуального алгоритму кадрування. Ви також можете визначити рівень стиснення зображень у форматі PNG і з легкістю перевертати, перевертати та обертати зображення.

Перегляд зображень через Go Бібліотека

{
    "operation": "crop",
    "params": {
      "width": 500,
      "height": 300
    }

Змініть розмір зображень відповідно до розміру

Безкоштовна уявна бібліотека включає підтримку зміни розміру зображень за допомогою команд Go у їхніх програмах. Ви можете легко змінити розмір зображення відповідно до ширини та висоти без обрізання. Бібліотека полегшує вашу роботу, зберігаючи співвідношення сторін зображення. Ширина та висота визначають максимальну рамку для зображення.

Розмір зображення за допомогою бібліотеки Free Go

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)
}

Обертайте та автоматично повертайте свої зображення

Безкоштовна уявна бібліотека забезпечує функціональність для легкого обертання ваших зображень. Він також містить дуже корисну функцію для автоматичного обертання зображень у програмах Go. Він автоматично обертає зображення без подальших трансформацій на основі метаданих орієнтації EXIF. Метод AutoRotate створює нове зображення з тим самим розміром і форматом, що й вхідне зображення.

Auto-Rotate Зображення за допомогою бібліотеки Free Go

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{}
		}
	}
 Українська