قص الصور في بايثون

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

مكتبة بايثون لاقتصاص الصور

لقص الصور، سوف نستخدم Aspose.Imaging for Python. إنها مكتبة متعددة الاستخدامات توفر مجموعة من الميزات للعمل مع الصور. على وجه الخصوص، فهو يتيح لك أداء مهام تحرير الصور الأساسية والمتقدمة بسهولة.

يمكنك إما تنزيل المكتبة أو تثبيتها في تطبيقات Python الخاصة بك من PyPI.

> pip install aspose-imaging-python-net 

قص صورة في بايثون

هناك طريقتان لاقتصاص الصورة باستخدام Aspose.Imaging for Python: استخدام قيم التحول واستخدام المستطيل. في طريقة قيم الإزاحة، نحدد قيم اليسار واليمين والأعلى والأسفل لإزاحة الصورة. ومن ناحية أخرى، نستخدم مستطيلاً لتحديد مساحة الاقتصاص في الطريقة الثانية.

لذلك دعونا نستعرض كل طريقة من طرق قص الصور المذكورة أعلاه بمساعدة مقتطفات كود بايثون.

قص صورة باستخدام قيم Shift في بايثون

توضح الخطوات أدناه كيفية اقتصاص صورة باستخدام قيم التحول في بايثون.

  • أولاً، استخدم طريقة Image.load() لتحميل الصورة كـ RasterImage.
  • ثم قم بتخزين الصورة مؤقتًا للحصول على أداء أفضل.
  • حدد قيم التحول لليسار واليمين والأعلى والأسفل.
  • قم بتمرير قيم التحول إلى طريقة RasterImage.crop() وقم بقص الصورة.
  • أخيرًا، احفظ الصورة المقصوصة باستخدام طريقة RasterImage.save().

يوضح مقتطف الكود التالي كيفية اقتصاص صورة في بايثون.

import aspose.pycore as aspycore
from aspose.imaging import RasterImage, Image, Rectangle
import os


if 'TEMPLATE_DIR' in os.environ:
	templates_folder = os.environ['TEMPLATE_DIR']
else:
	templates_folder = r"C:\Users\USER\Downloads\templates"

delete_output = 'SAVE_OUTPUT' not in os.environ
data_dir = templates_folder

# قم بتحميل صورة موجودة في مثيل لفئة RasterImage
with aspycore.as_of(Image.load(os.path.join(data_dir, "template.jpg")), RasterImage) as raster_image:
	# قبل الاقتصاص، يجب تخزين الصورة مؤقتًا للحصول على أداء أفضل
	if not raster_image.is_cached:
		raster_image.cache_data()

	# تحديد قيم التحول لجميع الجوانب الأربعة
	left_shift = 10
	right_shift = 10
	top_shift = 10
	bottom_shift = 10
  
	# استنادًا إلى قيم التحول، قم بتطبيق الاقتصاص على الصورة
	raster_image.crop(left_shift, right_shift, top_shift, bottom_shift)
  
  	# حفظ الصورة المقطوعة
	raster_image.save(os.path.join(data_dir, "result.jpg"))

if delete_output:
	os.remove(os.path.join(data_dir, "result.jpg"))

فيما يلي لقطات شاشة لصورة الإدخال (الأولى) ونسختها المقصوصة (الثانية).

صورة المحاصيل في بايثون
قص الصورة في بايثون

قص الصورة باستخدام المستطيل

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

  • أولاً، استخدم طريقة Image.load() لتحميل الصورة كـ RasterImage.
  • ثم قم بتخزين الصورة مؤقتًا.
  • قم بإنشاء مستطيل بالحجم المطلوب.
  • قم بتمرير كائن المستطيل إلى طريقة RasterImage.crop() وقم بقص الصورة.
  • أخيرًا، احفظ الصورة المقصوصة باستخدام طريقة RasterImage.save().

يعرض مقتطف الكود التالي اقتصاص الصورة بمستطيل في بايثون.

import aspose.pycore as aspycore
from aspose.imaging import RasterImage, Image, Rectangle
import os

if 'TEMPLATE_DIR' in os.environ:
	templates_folder = os.environ['TEMPLATE_DIR']
else:
	templates_folder = r"C:\Users\USER\Downloads\templates"

delete_output = 'SAVE_OUTPUT' not in os.environ
data_dir = templates_folder

# قم بتحميل صورة موجودة في مثيل لفئة RasterImage
with aspycore.as_of(Image.load(os.path.join(data_dir, "template.jpg")), RasterImage) as raster_image:
	if not raster_image.is_cached:
		raster_image.cache_data()

	# قم بإنشاء مثيل لفئة المستطيل بالحجم المطلوب
	rectangle = Rectangle(20, 20, 20, 20)
  
  	# قص الصوره
	raster_image.crop(rectangle)
  
  	# احفظ الصورة
	raster_image.save(os.path.join(data_dir, "result.jpg"))

if delete_output:
	os.remove(os.path.join(data_dir, "result.jpg"))

احصل على مكتبة بايثون لقص الصور مجانًا

يمكنك الحصول على ترخيص مؤقت مجاني واقتصاص الصور دون قيود التقييم.

خاتمة

يوفر Aspose.Imaging for Python حلاً قويًا لاقتصاص الصور ومعالجتها. زودتك مشاركة المدونة هذه بطريقتين لقص الصور يمكنك دمجهما بسهولة في تطبيقات Python الخاصة بك. عزز قدرات معالجة الصور لديك باستخدام واجهة برمجة التطبيقات القوية لتحرير الصور في Python. استكشف ميزاته المذهلة بزيارة الوثائق وشارك استفساراتك معنا عبر المنتدى.

أنظر أيضا