1. منتجات
  2.   صورة
  3.   GO
  4.   Picfit
 
  

خادم مفتوح المصدر لتغيير حجم الصور يوفر معالجة أسرع

Picfit هو خادم لتغيير حجم الصور تم تطويره في Pure Go والذي يعتني بجزء التخزين من معالجة الصور بغض النظر عن محرك التخزين المستخدم.

يمكن أن تكون معالجة الصور ، وخاصة تغيير الحجم ، عملية طويلة إذا تم تخزين صورتك على محركات مختلفة حيث يمكن أن يستغرق التطبيق وقتًا لإزالة أكواد الصور الرمزية وتجنب المكالمات المتزامنة لاسترداد الصورة التي تم إنشاؤها.

يعمل Picfit على حل هذه المشكلات ، من خلال العمل كوكيل بين محرك التخزين ونظام ذاكرة التخزين المؤقت HTTP. في حين أنه مجاني للتنزيل ومفتوح المصدر ويوفر معالجة أسرع ، فإنه يتجنب أيضًا إنشاء نفس الصورة مرتين وشغل مساحة كبيرة.

يمكنك تخزين الصور على Amazon S3 و DigitalOcean S3 ونظام الملفات الخاص بك والمزيد.

Previous Next

الشروع في العمل مع Picfit

الطريقة الأسهل والموصى بها لتثبيت Picfit هي عبر GitHub. الرجاء استخدام الأمر التالي للتثبيت السهل والسلس.

قم بتثبيت Picfit عبر GitHub

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

قم بتغيير حجم الصور عبر مكتبة Free GO

تتيح مكتبة picfit مفتوحة المصدر لمطوري البرامج تغيير حجم الصور برمجيًا داخل التطبيق الخاص بهم باستخدام أوامر Go. تتمثل إحدى الوظائف الرئيسية لـ Picfit في القدرة على تغيير حجم الصور وفقًا للارتفاع والعرض الذي تختاره. ما عليك سوى تقديم قيم w (عرض الصورة المطلوب) و h (ارتفاع الصورة المطلوب).  

قم بتغيير حجم الصورة عبر مكتبة Free 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)
}

مكتبة Free Go لإنشاء الصور المصغرة

يمكنك استخدام هذه الوظيفة لإنشاء صورة جديدة باستخدام مرشح تمت إعادة تشكيله سواء تم تكبيره أو تصغيره ، واقتصاصها إلى ارتفاع وعرض محددين. مرة أخرى في هذه الوظيفة ، عليك تقديم قيمتي w و h.

كيفية إنشاء صور مصغرة بتنسيق GIF داخل تطبيقات GO؟

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: إذا كان base_url موجودًا ، فستتلقى عنوان URL كاملًا للملف الذي تم إنشاؤه
 عربي