/pillow_project

این پروژه اپن سورس برای کار با عکس ها هست. با استفاده از این برنامه میتونید روی عکس هایتان انواع افکت هارو اعمال کنید

Primary LanguagePythonMIT LicenseMIT

🔥پروژه پیلو

این پروژه اپن سورس برای کار با عکس ها هست. با استفاده از این برنامه میتونید روی عکس هایتان انواع افکت هارو اعمال کنید

لیست تغییرات

99/6/30

فایل اصلی برنامه با تغییراتی روبرو شده است. چند قسمت جدید به برنامه اضافه کردم که کار باهاش رو راحت تر میکنه. خوشحال میشم امتحانش کنید...

99/7/1

اضافه کردن فایل راهنما برای آشنا شدن بازدیدکنندگان با پروژه

99/7/5

قابلیت اجرا کردن برنامه با یک کامند مهیا شد. یعنی فقط با یک خط میتونید همه درخواست هایتان نظیر بازکردن عکس، ویرایش عکس و سیو کردن عکس را انجام دهید. قسمت جذاب برنامه اینجاست که اگر کلماتی مثل اسم افکت هارو اشتباه بنویسید، برنامه نزدیک ترین کلمه به اون کلمه اشتباه رو پیدا میکنه و جای اون میذاره

99/7/11

اضافه کردن چند افکت دیگر به برنامه. اضافه کردن بخش help به برنامه

99/7/17

اضافه کردن بخش استخراج متن از عکس. حل برخی مشکلات

99/8/1

اضافه شدن قسمت جدید به برنامه! هم اکنون میتوانید عکس هایی که با وبکم میگیرید را ویرایش کنید. یعنی در لحظه ای که میخواهید با وبکم از خودتان عکس میگیرید و آن را ویرایش میکنید

نصب لایبرری ها

pip install -r requirements.txt

تابع های اعمال فیلتر

Grayscale

def gray_scale(image):
    image = ImageOps.grayscale(image)
    image = image.convert('RGB')
    return image

Negative

def negative(image):
    image = ImageChops.invert(image)
    image = image.convert('RGB')
    return image

Black and White

def b_and_w(image):
    gray = image.convert('L')
    image = gray.point(lambda x: 0 if x < 128 else 255, '1')
    image = image.convert('RGB')
    return image

Contour

def contourfilter(image):
    return image.filter(ImageFilter.CONTOUR).convert('RGB')

Edgeenhance

def edgeenhance(image):
    return image.filter(ImageFilter.EDGE_ENHANCE_MORE).convert('RGB')

Emboss

def emboss(image):
    return image.filter(ImageFilter.EMBOSS).convert('RGB')

Findedges

def findedges(image):
    return image.filter(ImageFilter.FIND_EDGES).convert('RGB')

Blur

def blur(image):
    many = 5
    return image.filter(ImageFilter.GaussianBlur(many)).convert('RGB')

Smooth

def smooth(image):
    return image.filter(ImageFilter.SMOOTH_MORE).convert('RGB')

Halftone

def halftone(img, sample, scale, angle=45):
    img_grey = img.convert('L')  
    channel = img_grey.split()[0]  
    channel = channel.rotate(angle, expand=1)
    size = channel.size[0]*scale, channel.size[1]*scale
    bitmap = Image.new('1', size)
    draw = ImageDraw.Draw(bitmap)
    for x in range(0, channel.size[0], sample):
        for y in range(0, channel.size[1], sample):
            box = channel.crop((x, y, x+sample, y+sample))
            mean = ImageStat.Stat(box).mean[0]
            diameter = (mean/255) ** 0.5
            edge = 0.5 * (1-diameter)
            x_pos, y_pos = (x+edge) * scale, (y+edge) * scale
            box_edge = sample * diameter * scale
            draw.ellipse((x_pos, y_pos, x_pos+box_edge, y_pos+box_edge), fill=255)
    bitmap = bitmap.rotate(-angle, expand=1)
    width_half, height_half = bitmap.size
    xx = (width_half - img.size[0]*scale) / 2
    yy = (height_half - img.size[1]*scale) / 2
    bitmap = bitmap.crop((xx, yy, xx + img.size[0]*scale, yy + img.size[1]*scale))
    return Image.merge('1', [bitmap])

طریقه استفاده⚡

python main.py

اجرای برنامه افکت با یک دستور(با استفاده از عکس ذخیره شده)

>>> Please Enter Command
[-nr/-r] "{image address}" edit {effect name} "{export name}"

نمونه ورودی و خروجی

عکس ورودی

>>> Please Enter Command
-r "Rainbow-Rose.jpg" edit blur "Rainbow-Rose-blur"

عکس خروجی

اجرای برنامه افکت با یک دستور(با استفاده از دوربین وبکم)

>>> Please Enter Command
-o camera edit {effect name} "{export name}"

نمونه ورودی و خروجی

>>> Please Enter Command
-o camera edit blackandwhite "Ashkan"

اجرای برنامه تشخیص متن با یک دستور

>>> Please Enter Command
[-nr/-r] "{image address}" tool image_to_text [fas/eng] "{export name}"

مثال

>>> Please Enter Command
-r "hello.png" tool image_to_text eng "chebahal"

با زدن کد بالا عکس hello.png باز میشود و متن آن توسط برنامه تشخیص داده میشود. بعد از تشخیص متن، متن استخراج شده در فایل chebahal ذخیره میشود.

فایل ذخیره شده:

قابلیت تشخیص کلمه اشتباه

این قابلیت به شما کمک میکند که اگر نام افکتی را غلط نوشتید، برنامه نزدیک ترین کلمه به کلمه اشتباه شما را پیدا کند و جای آن بگذارد.

مثال

>>> Please Enter Command
-r "photo.png" edit grayscfel negitave balkandwite "Salam_aziz"

شکل تصحیح شده:

-r "photo.png" edit grayscale negative blackandwhite "Salam_aziz"

> در این صورت برنامه دستور شما به صورت شکل بالا تصحیح میکند

طریقه استفاده از بخش help

>>> Please Enter Command
--help

لیست کار ها

  • اضافه کردن رابط کاربری به برنامه
  • استخراج متن از عکس
  • عکس برداری با وبکم
  • ساخت افکت های جدید
  • ساخت قسمت help
  • چک کردن کامند کاربر و پیشنهاد به او
  • ساخت افکت سفید و سیاه
  • ساخت افکت نگاتیو
  • ساخت افکت گری اسکیل
  • قابلیت دیدن پیشنمایش عکس قبل از ذخیره
  • نشان دادن تغییراتی که روی عکس اعمال کرده اید
  • اجرای برنامه فقط با یک خط دستور
  • قابلیت تشخیص کلمه اشتباه نظیر نام افکت و تصحیح آن