این پروژه اپن سورس برای کار با عکس ها هست. با استفاده از این برنامه میتونید روی عکس هایتان انواع افکت هارو اعمال کنید
فایل اصلی برنامه با تغییراتی روبرو شده است. چند قسمت جدید به برنامه اضافه کردم که کار باهاش رو راحت تر میکنه. خوشحال میشم امتحانش کنید...
اضافه کردن فایل راهنما برای آشنا شدن بازدیدکنندگان با پروژه
قابلیت اجرا کردن برنامه با یک کامند مهیا شد. یعنی فقط با یک خط میتونید همه درخواست هایتان نظیر بازکردن عکس، ویرایش عکس و سیو کردن عکس را انجام دهید. قسمت جذاب برنامه اینجاست که اگر کلماتی مثل اسم افکت هارو اشتباه بنویسید، برنامه نزدیک ترین کلمه به اون کلمه اشتباه رو پیدا میکنه و جای اون میذاره
اضافه کردن چند افکت دیگر به برنامه. اضافه کردن بخش help به برنامه
اضافه کردن بخش استخراج متن از عکس. حل برخی مشکلات
اضافه شدن قسمت جدید به برنامه! هم اکنون میتوانید عکس هایی که با وبکم میگیرید را ویرایش کنید. یعنی در لحظه ای که میخواهید با وبکم از خودتان عکس میگیرید و آن را ویرایش میکنید
pip install -r requirements.txt
def gray_scale(image):
image = ImageOps.grayscale(image)
image = image.convert('RGB')
return image
def negative(image):
image = ImageChops.invert(image)
image = image.convert('RGB')
return image
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
def contourfilter(image):
return image.filter(ImageFilter.CONTOUR).convert('RGB')
def edgeenhance(image):
return image.filter(ImageFilter.EDGE_ENHANCE_MORE).convert('RGB')
def emboss(image):
return image.filter(ImageFilter.EMBOSS).convert('RGB')
def findedges(image):
return image.filter(ImageFilter.FIND_EDGES).convert('RGB')
def blur(image):
many = 5
return image.filter(ImageFilter.GaussianBlur(many)).convert('RGB')
def smooth(image):
return image.filter(ImageFilter.SMOOTH_MORE).convert('RGB')
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"
> در این صورت برنامه دستور شما به صورت شکل بالا تصحیح میکند
>>> Please Enter Command
--help
- اضافه کردن رابط کاربری به برنامه
- استخراج متن از عکس
- عکس برداری با وبکم
- ساخت افکت های جدید
- ساخت قسمت help
- چک کردن کامند کاربر و پیشنهاد به او
- ساخت افکت سفید و سیاه
- ساخت افکت نگاتیو
- ساخت افکت گری اسکیل
- قابلیت دیدن پیشنمایش عکس قبل از ذخیره
- نشان دادن تغییراتی که روی عکس اعمال کرده اید
- اجرای برنامه فقط با یک خط دستور
- قابلیت تشخیص کلمه اشتباه نظیر نام افکت و تصحیح آن