HTTP Əsaslı Şəkil Emalı üçün API-yə keçin
Onlayn ağıllı kəsməni, şəkilləri çevirməyi və ya çevirməyi, şəkil miniatürlərini yaratmağı, təsviri böyütməyi, PNG, WEBP, TIFF, PDF, GIF və SVG-yə su nişanı əlavə etməyi və s. funksiyaları dəstəkləyən Açıq Mənbəli Go Kitabxanası.
Xəyali, proqram tərtibatçılarına daha az asılılıqla özəl və ya ictimai HTTP xidmətləri vasitəsilə qabaqcıl təsvir əməliyyatlarını yerinə yetirmək üçün güc verən çox güclü açıq mənbəli HTTP əsaslı təsviri emal edən Go API-dir. O, API token icazəsi, URL imza mühafizəsi, HTTP trafik tənzimləmə strategiyası və veb müştərilər üçün CORS dəstəyi kimi qabaqcıl əməliyyatları dəstəkləyir. Kitabxana HTTP POST yüklərindən, yerli server yollarından və ya uzaq HTTP serverlərindən şəkilləri oxuya bilər.
Xəyali libvips üzərində qurulmuş güclü və sabit bir kitabxanadır, sürətli və səmərəli təsvir emalı. Kitabxanaya JPEG, PNG, HEIF, WEBP, TIFF, PDF, GIF və SVG formatları kimi şəkil formatları, eləcə də onlar arasında şəffaf çevrilmə dəstəyi daxildir. Docker & Fly.io üçün tam dəstək verdi. Fly-ın ən yaxşı cəhəti odur ki, o, gecikməni azalda bilər və istifadəçinin olduğu yerə yaxın trafikə xidmət etməklə daha yaxşı təcrübə təmin edə bilər.
Xəyali kitabxana təsvirin ölçüsünün dəyişdirilməsi, şəkillərin böyüdülməsi, təsvirin kəsilməsi, smart-kəsmə, şəkillərin fırlanması, əlavə şəkil çevrilmələri ilə Avtomatik Döndürmə, EXIF metadatasına əsaslanan avtomatik çevirmə, şəkil kimi təsvirin yaradılması, konvertasiyası və manipulyasiyası ilə bağlı bir sıra vacib funksiyaları tam dəstəkləyir. flop, şəkilləri böyüt, şəkillərin miniatürlərini yaradın, şəkillərə uyğunlaşdırın, təsviri yerləşdirin və ya genişləndirin, su nişanı şəkli əlavə edin, təsvirə bulanıqlıq effektləri əlavə edin və s.
Xəyali ilə başlamaq
Xəyali quraşdırmanın ən asan və tövsiyə olunan yolu GitHub vasitəsilədir.
GitHub vasitəsilə xəyali quraşdırın
go get -u github.com/h2non/imaginary
Go vasitəsilə şəkilləri digər formatlara çevirin
Açıq mənbəli API xəyali kitabxanası şəkillərinizi asanlıqla digər dəstəklənən fayl formatlarına çevirmək üçün dəstəyi ehtiva edir. Şəkilləri JPEG, PNG və WEBP formatları kimi çox faydalı formatlarda saxlaya bilərsiniz. Kitabxana əlavə keyfiyyət və sıxılma parametrləri ilə konvertasiya dəstəyi təmin etmişdir. Siz sadəcə olaraq düzgün şəkil adını, ünvanını və çevirmə formatını təqdim etməlisiniz və kitabxana onu sadəcə bir neçə Go əmri ilə sizin üçün asanlıqla çevirəcək.
Xəyali Kitabxana vasitəsilə Şəkli çevirin
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 vasitəsilə onlayn şəkil kəsmə
Açıq mənbəli xəyali kitabxana proqram tərtibatçılarına öz tətbiqlərində bir neçə sətir Go kodu ilə şəkillərini onlayn kəsməyə imkan verir. Xüsusi genişlik və ya hündürlük təmin etməklə şəklinizi kəsə bilərsiniz. Kitabxana Şəkil nisbətini qorumaqla işinizi asanlaşdırır. Kitabxana həmçinin libvips daxili ağıllı kəsmə alqoritmindən istifadə edərək şəklin kəsilməsini dəstəkləyir. Siz həmçinin PNG şəkilləri üçün təsvirin sıxılma səviyyəsini təyin edə və şəkillərinizi asanlıqla çevirə, çevirə və döndərə bilərsiniz.
Go Library vasitəsilə şəklin kəsilməsi
{
"operation": "crop",
"params": {
"width": 500,
"height": 300
}
Şəkillərin ölçüsünü uyğunlaşdırmaq üçün dəyişdirin
Pulsuz xəyali kitabxana, tətbiqlərindəki Go əmrlərindən istifadə edərək şəkillərin ölçüsünü dəyişdirmək üçün dəstəyi ehtiva edir. Şəklin ölçüsünü kəsmədən eni və hündürlüyünə uyğunlaşdırmaq üçün asanlıqla dəyişə bilərsiniz. Kitabxana görüntü nisbətini qorumaqla işinizi asanlaşdırır. Genişlik və hündürlük şəkil üçün maksimum məhdudlaşdırıcı qutunu təyin edir.
Pulsuz Go Library vasitəsilə şəklin ölçüsünü dəyişdirin
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)
}
Şəkillərinizi Döndürün və Avtomatik Döndürün
Pulsuz xəyali kitabxana şəkillərinizi asanlıqla fırlatmaq üçün funksionallıq təmin etdi. O, həmçinin Go proqramları daxilində şəkillərin avtomatik fırlanması üçün çox faydalı funksiyanı ehtiva edir. O, EXIF oriyentasiya metadatasına əsaslanaraq, heç bir əlavə şəkil dəyişdirmədən şəkli avtomatik olaraq fırladır. AutoRotate metodu daxil edilən təsvirlə eyni ölçüdə və formatda yeni şəkil yaradır.
Pulsuz Go Library vasitəsilə Şəkili Avtomatik Döndürün
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{}
}
}