برنامج مفتوح المصدر
نشر في 2025-12-27 | القسم: برمجة
🎯 فكرة البرنامج
البرنامج هو صانع صور متحركة (GIF Maker) باستخدام لغة بايثون. يسمح لك بـ:
- اختيار صور (PNG/JPG).
- ترتيبها أو تدويرها.
- تحديد حجم الصور وسرعة الحركة.
- إضافة نص (كتابة على الصور).
- معاينة النتيجة قبل الحفظ.
- وأخيرًا إنشاء ملف GIF جاهز.
🛠️ المتطلبات
قبل تشغيل الكود، تحتاج إلى تثبيت بعض المكتبات:
- Python 3.9 أو أحدث (يفضل).
- مكتبات إضافية:
- tkinter (موجودة افتراضيًا مع بايثون).
- Pillow (للتعامل مع الصور).
- imageio (للتعامل مع الصور المتحركة).
- numpy (للتعامل مع المصفوفات).
تثبيت المكتبات:
افتح الطرفية (Terminal أو CMD) واكتب:
pip install pillow imageio numpy
⚙️ تهيئة بيئة العمل
- تأكد أن لديك Python مثبت على جهازك.
python --version
- أنشئ مجلد جديد وليكن اسمه
gif_maker. - أنشئ ملف داخل المجلد باسم
main.py. - انسخ الكود المرسل إلى الملف.
- شغل البرنامج:
python main.py
🧩 شرح الكود
1. المكتبات
import tkinter as tk from tkinter import filedialog, messagebox, ttk from PIL import Image, ImageDraw, ImageFont, ImageTk import imageio import numpy as np import os
- tkinter: لإنشاء واجهة رسومية (GUI).
- PIL (Pillow): للتعامل مع الصور (فتح، تعديل، كتابة نص).
- imageio: لإنشاء ملفات GIF.
- numpy: لتحويل الصور إلى مصفوفات.
- os: للتعامل مع الملفات والمسارات.
2. إنشاء واجهة البرنامج
class GifMakerApp:
def __init__(self, root):
self.root = root
self.root.title("صانع الصور المتحركة (GIF Maker)")
self.root.geometry("650x850")
self.root.configure(bg="f0f0f0")
- هنا نعرف كلاس يمثل التطبيق.
- نحدد حجم النافذة، العنوان، ولون الخلفية.
3. اختيار الصور
def select_images(self):
paths = filedialog.askopenfilenames(title="اختر الصور", filetypes=[("Images", ".png;.jpg;.jpeg;.bmp")])
- يفتح نافذة لاختيار صور من جهازك.
- يخزن المسارات في قائمة.
4. تدوير الصور
def rotate_current_image(self):
self.image_items[idx]['rotation'] = (self.image_items[idx]['rotation'] - 90) % 360
- يسمح لك بتدوير الصورة المختارة 90 درجة.
5. إعدادات GIF
- إدخال العرض والارتفاع.
- إدخال مدة الإطار (بالمللي ثانية).
- إدخال عدد مرات التكرار.
6. إضافة نص
draw.text((x, y), text_overlay, font=font, fill="white", stroke_width=2, stroke_fill="black")
- يكتب النص على الصور مع حدود سوداء ليكون واضح.
7. المعاينة
def preview_gif(self): يعرض الصور بشكل متحرك داخل نافذة صغيرة. يمكنك مشاهدة الحركة قبل الحفظ.
8. إنشاء وحفظ GIF
pil_images[0].save(save_path, save_all=True, append_images=pil_images[1:], duration=duration_ms, loop=loop_count)
- يحفظ الصور المتحركة كملف GIF.
🚀 النتيجة
بعد تشغيل البرنامج، ستحصل على واجهة رسومية سهلة الاستخدام:
- زر لاختيار الصور.
- زر لتدوير الصور.
- إعدادات للتحكم بالحجم والسرعة.
- زر للمعاينة.
- زر لإنشاء وحفظ ملف GIF.
💡 نصيحة
ابدأ بتجربة الكود كما هو، ثم حاول التعديل:
- غيّر ألوان الواجهة.
- أضف خيارات جديدة (مثل تغيير نوع الخط).
- جرّب صور مختلفة لترى النتيجة.