Сървър за преоразмеряване на изображения с отворен код, който осигурява по-бърза обработка

Picfit е сървър за преоразмеряване на изображения, разработен в Pure Go, който се грижи за частта от обработката на изображения за съхранение, независимо от използваната машина за съхранение.

Обработката на изображението, особено преоразмеряването, може да бъде дълъг процес, ако вашето изображение се съхранява на различни машини, тъй като може да отнеме време на приложението да премахне кодовете на аватари и да избегне синхронни извиквания за извличане на генерираното изображение.

Picfit разрешава тези проблеми, като действа като прокси между вашия механизъм за съхранение и HTTP кеш системата. Въпреки че е безплатен за изтегляне, с отворен код и осигурява по-бърза обработка, той също така избягва генерирането на едно и също изображение два пъти и заемането на твърде много място.

Можете да съхранявате изображения в Amazon S3, DigitalOcean S3, вашата файлова система и др.

Previous Next

Първи стъпки с Picfit

Най-лесният и препоръчителен начин за инсталиране на Picfit е чрез GitHub. Моля, използвайте следната команда за лесна и гладка инсталация.

Инсталирайте Picfit чрез GitHub

 git clone https://github.com/thoas/picfit.git

Преоразмеряване на изображения чрез безплатна библиотека GO

Библиотеката picfit с отворен код позволява на разработчиците на софтуер програмно да преоразмеряват изображения в собственото си приложение, използвайки Go команди. Една от основните функции на Picfit е възможността да преоразмерявате изображения според височината и ширината по ваш избор. Просто задайте стойностите w (желаната ширина на изображението) и h (желаната височина на изображението).  

Преоразмерете изображението чрез безплатна библиотека GO

 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 за генериране на миниатюри

Можете да използвате тази функция, за да генерирате ново изображение с преобразуван филтър, мащабиран нагоре или надолу, и да го изрязва до определена височина и ширина. Отново в тази функция трябва да предоставите стойностите w и h.

Как да генерирате GIF миниатюри в GO 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

Освен функциите за преоразмеряване, Picfit има и някои важни функции за извличане на информация за файлове като Get, както и команди за съхранение или качване. С функцията Get ще получите следните параметри като резултат:

  • Име на файл: име на генерирания файл
  • Път: това ще бъде пътят на вашия генериран файл във вашата система за съхранение
  • URL: ако базовият_url присъства, тогава ще получите пълен URL на вашия генериран файл
 Български