Open Source Image Rescuing Server, который обеспечивает более быструю обработку
Profit - это сервер, проживающий изображения, разработанный в Pure Go that takes care of storage part of image processing irrespective the storage engine used.
Обработка изображений, особенно проживание, может быть долгим процессом, если ваше изображение хранится на разных двигателях, так как это может занять время для приложения, чтобы удалить коды аватаров и избежать синхронных звонков для восстановления сгенерированного изображения.
Прибыль решает эти проблемы, действуя как прокси между вашим движком хранения и системой HTTP кэша. В то время как он свободен для загрузки, open source и обеспечивает более быструю обработку, он также избегает создания одного и того же изображения дважды и занимает слишком много места.
Вы можете хранить изображения на Amazon S3, DigitalOcean S3, вашей файловой системе и многое другое.
Начало работы с Пикфитом
Самый простой и рекомендуемый способ установки Profit - через GitHub. Пожалуйста, используйте следующую команду для простой и гладкой установки.
Установить прибыль через GitHub
git clone https://github.com/thoas/picfit.git
Изменить размер изображений через библиотеку Free Gt
Библиотека прибыли с открытым исходным кодом позволяет разработчикам программного обеспечения программно изменять изображения внутри собственного приложения с помощью команд Go. Одна из основных функций Profit - способность изменять размер изображений в зависимости от высоты и ширины вашего выбора. Просто предоставьте значения w (желаемая ширина изображения) и h (желаемая высота изображения = высота).
Изменить размер изображения через библиотеку Free Gt
func (e *GoImageEngine) Resize(img *imagefile.ImageFile, width int, height int, options *Options) ([]byte, error) {
if options.Format == imaging.GIF {
content, err := e.TransformGIF(img, width, height, options, imaging.Resize)
if err != nil {
return nil, err
}
return content, nil
}
image, err := e.Source(img)
if err != nil {
return nil, err
}
return e.resize(image, width, height, options)
}
Бесплатная Go библиотека для создания Thumbnails
Вы можете использовать эту функцию для создания нового изображения с фильтром с выборкой, либо увеличенным, либо вниз, и выращивать его до заданной высоты и ширины. Опять же в этой функции вы должны предоставить значения w и h.
Как создать GIF Thumbnails внутри Gt Apps?
func (e *GoImageEngine) Thumbnail(img *imagefile.ImageFile, width int, height int, options *Options) ([]byte, error) {
if options.Format == imaging.GIF {
content, err := e.TransformGIF(img, width, height, options, imaging.Thumbnail)
if err != nil {
return nil, err
}
return content, nil
}
image, err := e.Source(img)
if err != nil {
return nil, err
}
return e.thumbnail(image, width, height, options)
}
Информация о резерве через Go API
Помимо живых функций, Profit также имеет некоторые важные функции для получения информации о файле, таких как Get, а также для хранения или загрузки команд. С функцией Get вы получите следующие параметры в результате:
- Имя файла: имя сгенерированного файла
- Путь: это будет путь вашего сгенерированного файла на вашем движке хранения
- URL: если присутствует base_url, то вы получите полный URL из вашего сгенерированного файла