You are on page 1of 56

IMAGE EDITOR

A Project Report submitted to the Madurai Kamaraj University

In partial fulfillment of the requirement for the award of degree in

BACHELOR OF INFORMATION
TECHNOLOGY

(2019- 2022)

Submitted by
K. DEEPIKA
(19BIT13)

Under the Guidance of


Mr. JOHN GLADSON PRABHU MCA., M.Phil.,

THE AMERICAN COLLEGE


DEPARTMENT OF INFORMATION
TECHNOLOGY
An Autonomous institution affiliated to The Madurai Kamaraj University

Re-accredited (3rd cycle) by NAAC with Grade “A+” CGPA-3.47 on A 4-points


scale

Madurai – 625002
THE AMERICAN COLLEGE

An Autonomous institution affiliated to The Madurai Kamaraj University


Re-accredited (3rd cycle) by NAAC with Grade “A+” CGPA-3.47 on A 4-points
scale

Madurai - 625002.

DEPARTMENT OF INFORMATION
TECHNOLOGY
BONAFIDE CERTIFICATE
This is to certify that the project work entitled as “IMAGE EDITOR” Submitted by
K. DEEPIKA (19BIT13) in partial fulfillment of requirements for the award of the
Degree of Bachelor of Information Technology, The American College, Madurai,
is a bonafide record of the work by her during the year 2019 – 2022.

Mr.J.S. John Gladson Prabhu MCA.,M.Phil., Dr.N. Ravia Shabnam Parveen MCA., M.E.,Ph.D.,

Internal guide Head of the Department

Submitted for the Viva-Voice examination held on_______________

Internal Examiner
DECLARATION

I hereby declare that this project was carried out by me under the
guidance of Mr. J. S. JOHN GLADSON PRABHU MCA., M.Phil.,
Department of Information Technology, The American College,
Madurai. I also declare that this project report is the result of my own
effort and that is that has not been copied from anyone and has not been
submitted by anybody in any other Universities / Institution/ Research
Centers.

Place: Madurai Signature of the Candidate


Date: K. DEEPIKA
(19BIT13)
ACKNOWLEDGEMENT

I am pleased to convey my sincere thanks to our honorable Principal and


secretary DR .M. DAVAMANI CHRISTOBER, M.Sc., M.Phil., ., M.Ed.,
PGDCA.,Ph.D., (Inter Disciplinary), Ph.D.,(Math) The American College .

I am grateful to our Head of the Department of Information


Technology Dr. N . RAVIA SHABNAM PARVEEN, MCA., M.PHIL., M.E.,
PH.D.,---- Bachelor of Information Technology Department for her energetic
Encouragement .

I express my deep sense of Gratitude and Indebtedness to my internal guide,


MR. J. S . JOHN GLADSON PRABHU MCA., M.Phil., Lecture Department of
Information Technology for his inspiring guidance and continuous encouragement
which has enabled me to complete this Project

Also I would like to thank all my teachers , my parents, friends and all my well-
wishers who have helped me during the completion of this project.
S.NO CONTENT PAGE NO

1 INTRODUCTION
1.1 Overview of Project 1

2 SYSTEM ANALYSIS
2.1 ABSTRACT 2

3 SYSTEN REQUIREMENT
3.1 Hardware Requirement 4
3.2 Software Requirement

4 SOFTWARE DESCRIPTION
4.1 Features of Python 5
4.2 Features of Pygame

5 SYSTEM DESIGN
5.1 Data Flow Diagram 7

6 SYSTEM DESCRIPTION
6.1 Modules Description 15

7 CODING 20

8 TESTING 31

9 SCREENSHOT 34

10 CONCLUSION 44

11 FUTURE ENHANCEMENT 46

12 BIBLIOGRAPHY 48
INTRODUCTION
1.INTRODUCTION

1.1 OVERVIEW OF PROJECT

This project is designed the purpose of Edit Image. The project is a


IMAGE EDITOR.

Image editor is a window based application . This editor contains


many types of images and also some features like Blur Image,
Brightness level, Contrast, Rotate in different levels, Border. Python t-
kinter is used to create the layout of the editor page. Through this editor
we can choose the image and also save image if needed we can exit the
editor page.

1
SYSTEM ANALYSIS

2
2. SYSTEM ANALYSIS

2.1. PROBLEM DEFINITION

This project is about turning an image into a pencil sketch, Water Color,
Oil painting , Cartoon and color sketch and black and white. An Image
can be Selected using the Select Button and also exit that page using the
Exit Button. There are many features are used to process the image like
increase the level of brightness, level of contrast, Rotate the image to
different sizes, Increasing the image border

Existing System:
In Existing System there are many types to transform a Normal
Image into a gorgeous Image and we can Choose Our Image and
Change it to a Beautiful Image and save it.

Proposed System:
Every day there are more and more Technology-related

Categories. The variety of ways to make even the non-image-

changing object look like a human Face is continuing and will be at an


Extreme level in the future.

3
SYSTEM REQUIREMENT

4
3. SYSTEM REQUIREMENT

3.1. HARDWARE SPECIFICATION:


HARDWARE REQUIREMENT

Processor : intel(R) core(TM) i5-8250U

Ram : 2 GB

Hard Disk Drive : 100Gb

Mouse : Touch Pad

5
3.2. SOFTWARE SPECIFICATION

Operating System : Windows 10

Technology Used : Python IDLE

App : Window based app.

6
SOFTWARE DESCRIPTION

7
4. SOFTWARE DESCRIPTION
4.1 Python

Python is a general-purpose interpreted, interactive, object-oriented, and high-level


programming language.

It was created by Guido van Rossum during 1985- 1990. Open CV is a Python
library that is used to work with Computer Vision and other artificial artifacts. Open
CV has inbuilt functions and methods which provide access to work with Computer
Vision in Artificial Intelligence and Machine Learning.

Python is a high-level, interpreted, interactive and object-oriented scripting language.


Python is designed to be highly readable. It uses English keywords frequently where
as other languages use punctuation, and it has fewer syntactical constructions than
other languages.

Python is a MUST for students and working professionals to become a great

Software Engineer specially when they are working in Web


Development Domain. I will list down some of the key advantages of
learning Python

Python is Interpreted − Python is processed at runtime by the interpreter. You do not


need to compile your program before executing it. This is similar to PERL and PHP.

Python is Interactive − You can actually sit at a Python prompt and interact with the
interpreter directly to write your programs.

8
Python is Object-Oriented − Python supports Object-Oriented style or technique of
programming that encapsulates code within objects.

Python is a Beginner's Language − Python is a great language for the beginner-level


programmers and supports the development of a wide range of applications from
simple text processing to WWW browsers to

games.

Characteristics of Python

Following are important characteristics of Python Programming –

• It supports functional and structured programming methods as well as OOP.

• It can be used as a scripting language or can be compiled to byte-code for building


large applications.

• It provides very high-level dynamic data types and supports dynamic type
checking.

• It supports automatic garbage collection.

• It can be easily integrated with C, C++, COM, ActiveX, CORBA, and Java.

9
Easy-to-read − Python code is more clearly defined and visible to the eyes.

Easy-to-maintain − Python's source code is fairly easy-to-maintain.

A broad standard library − Python's bulk of the library is very portable and cross-
platform compatible on UNIX, Windows, and Macintosh.

Interactive Mode − Python has support for an interactive mode which allows
interactive testing and debugging of snippets of code.

Portable − Python can run on a wide variety of hardware platforms and has the same
interface on all platforms.

Extendable − You can add low-level modules to the Python interpreter. These
modules enable programmers to add to or customize their tools to be more efficient.

Databases − Python provides interfaces to all major commercial databases.

Programming − Python supports GUI applications that can be created and ported to
many system calls, libraries and windows systems, such as Windows MFC,
Macintosh, and the X Window system of Unix.

Scalable − Python provides a better structure and support for large programs than
shell scripting.

Apart from the above-mentioned features, Python has a big list of good features, few
are listed below −

• It supports functional and structured programming methods as well as OOP.

• It can be used as a scripting language or can be compiled to byte-code for


building large applications.

• It provides very high-level dynamic data types and supports dynamic type
checking.

• It supports automatic garbage collection.

• It can be easily integrated with C, C++, COM, ActiveX, CORBA, and Java.

10
Advantages/Benefits of Python

The diverse application of the Python language is a result of the combination of


features which give this language an edge over others. Some of the benefits of
programming in Python include:

1. Presence of Third Party Modules:

The Python Package Index (PyPI) contains numerous third-party modules


that make Python capable of interacting with most of the other languages and
platforms.

2. Extensive Support Libraries:

Python provides a large standard library which includes areas like internet
protocols, string operations, web services tools and operating system
interfaces. Many high use programming tasks have already been scripted into
the standard library which reduces length of code to be written significantly.

3. Open Source and Community Development:

Python language is developed under an OSI-approved open source license, which


makes it free to use and distribute, including for commercial purposes.

Further, its development is driven by the community which collaborates for its code
through hosting conferences and mailing lists, and provides for its numerous
modules.

4. Learning Ease and Support Available:

Python offers excellent readability and uncluttered simple-to-learn syntax which


helps beginners to utilize this programming language. The code style guidelines,
PEP 8, provide a set of rules to facilitate the formatting of code. Additionally, the
wide base of users and active developers has resulted in a rich internet resource bank
to encourage development and the continued adoption of the language.

11
5. User-friendly Data Structures:

Python has built-in list and dictionary data structures which can be used to construct
fast runtime data structures. Further, Python also provides the option of dynamic
high-level data typing which reduces the length of support code that is needed.

6. Productivity and Speed:

Python has clean object-oriented design, provides enhanced process control


capabilities, and possesses strong integration and text processing capabilities and its
own unit testing framework, all of which contribute to the increase in its speed and
productivity. Python is considered a viable option for building complex multi-
protocol network applications.

Python

Python is a dynamic, general-purpose programming language. It is a desirable option


for Rapid Application Development, courtesy of its built-in data structures,
combined with dynamic typing and binding. Python reduces the cost of program
maintenance. One of the benefits of Python revolves around how the interpreter and
resource library are available for free on the internet. Python, therefore,

becomes an excellent option for anyone not willing to invest too much in
development costs. And, Python has fascinating real world applications .

Real-world Application of Computer Vision So before discussing the approach and


jumping on the code part let’s first discuss how the techniques used in this project
help in the real-world scenario.

Cartooning the image: Though in this problem statement we will be working on


watercolor art but the main thing is if we will fine-tune the parameters we can
achieve this problem for that we just need to brush up on our concepts.

Apply filters: We can go for a variety of filters using the same techniques which can
be very helpful from an artificial intelligence market’s view most specifically for
VR/AR companies.

12
Modifying images: Nowadays many applications are developed in the market which
give a pricky effect to the pictures and this filtering kind of image processing can
surely contribute to those applications.

An image to perform computer vision concepts on it but there is a strict logic


behind resizing it. Let’s take an example to explain that reason so suppose you will
be operating on the unique distribution of an image.

To make sure that in each type of the image our results should be same for that, it is
always a good practice to use resize function so our kernel operations are done
effectively.

Converting an image with OpenCV can be done with a simple


binary thresholding operation. We start with a gray scale image and we define a
threshold value.

Python Imaging Library for some very simple image manipulation, however I'm
having trouble converting a greyscale image to a monochrome (black and white)
image. If I save after changing the image to greyscale (convert('L')) then the image
renders as you would expect.

Image cartoon frames don’t contain so many variants of color and those frames also
contain dark edges of each object. There’re lots of ways to do that, but we’re going
to use color quantization and the adaptive threshold technique. Using this technique
we can achieve a very great result.

OpenCV

OpenCV is a python library for image processing. It is an open- source library that
can be used in real-time computer vision applications. In this project, we will use
opencv to create image cartoons.

13
GUI Programming − Python supports GUI applications that can be created and
ported to many system calls, libraries and windows systems, such as Windows MFC,
Macintosh, and the X Window system of Unix. • Scalable − Python provides
scripting.

• Easy-to-learn − Python has few keywords, simple structure, and a clearly defined
syntax. This allows the student to pick up the language
Color Quantization

Color quantization or vector quantization is an image processing technique that


reduces the number of colors to show the image while preserving the overall
appearance quality.

14
SYSTEM DESIGN

15
5. SYSTEM DESIGN

5.1. DATA FLOW DIAGRAM

A data flow diagram (DFD) maps out the flow of information for any process or
system. It uses defined symbols like rectangles, circles and arrows, plus short text
labels, to show data inputs, outputs, storage points and the routes between each
destination. Data flowcharts can range from simple, even hand-drawn process
overviews, to in-depth, multi-level DFDs that dig progressively deeper into how the
data is handled.

SYMBOLS
External Entity

Process

Data Store

Data Flow

16
IMAGE
EDITOR

Select

Apply any
features

Save
Exit
image

17
6 . SYSTEM DESCRIPTION
6.1. MODULES DESCRIPTION:

1. Editor page

Select Image

Save and exit

2. Add Some Features

3. Image Types

Pencilsketch ,Watercolor

Oil Painting, Black and White,

Color sketch Cartoon

Editor page:

It is a first page that have some features to process the image in

Image Editor.

Select :

To Select an Image Through the Select Button.

Save and Exit :

Save Button is used to Save the processed image and Exit that page using
the Exit Button.

Add some features :

There are some features like Blur image, Increasing Brightness

level, Increasing Contrast level , Rotate the image in different levels,

Different size of Border with image .

18
Image Types :

Image Editor have some Image types to process the Input Image.

There are Pencil sketch ,Watercolor, Oil Painting, Black and White, color sketch,
Cartoon.

Pencil sketch :

Convert to a gray image using cvt-color function of Open-cv in Python

Water Color :

In this section cv2. stylization used to convert a image to water color


Image.

Oil Painting :

An oil painting is used to decrease image dynamic and hence increase oil
painting effect.

Color Sketch :

In this type of color sketch to grayimage cv2.pencilSketch method used to


convert the image

Black and White :

In this section colorimage convert to the black and white image through
the cv2.pencilsketch method.

Cartoon :

Converting an image to Cartoon with OpenCV can be done with a simple


binary thresholding operation. We start with a gray scale image and we define a
threshold value.

19
CODING

20
7. CODING

#creating master window


master.title("IMAGE EDITOR")
master.geometry("1280x720")
master.configure(bg='lightblue')
master.state("zoomed")
destinationImg_Path = os.path.abspath(os.curdir)
photo = PhotoImage(file = os.path.join(destinationImg_Path,'icon',
'icon.png'))
master.iconphoto(False, photo)

# function is used to select image


def selected():
try:
global img_path, sourceimg,destinationImg_Path
img_path = filedialog.askopenfilename(initialdir=os.getcwd())
destinationImg_Path=os.path.join(destinationImg_Path,
"destinationImage.jpg")
sourceimg = Image.open(img_path)
sourceimg.save(destinationImg_Path)
sourceimg.thumbnail((350, 350))

destinationimg = ImageTk.PhotoImage(sourceimg)

21
sourcecanvas.create_image(300, 210, image=destinationimg)
sourcecanvas.image=destinationimg
except Exception as ex:
messagebox.showinfo("Exception","Excption occurred and error mssage is:"" "+
str(ex) +" """)

# function is used to blur image


def blur(event):
global blurfinalimg, blurtempimg
try:
if not os.path.isfile(destinationImg_Path) :
messagebox.showinfo("Alert", "Please select image!!!")
sys.exit()
else:
for m in range(0, v1.get()+1):
sourceimage = Image.open(destinationImg_Path)
sourceimage.thumbnail((350, 350))
blurtempimg = sourceimage.filter(ImageFilter.BoxBlur(m))
blurfinalimg = ImageTk.PhotoImage(blurtempimg)
destinationcanvas.create_image(300, 210,
image=blurfinalimg)
destinationcanvas.image=blurfinalimg
except Exception as ex:
messagebox.showinfo("Exception","Excption occurred and error
mssage is:"" "+ str(ex) +" """)
sys.exit()
# function is used to modify the image brightness
def brightness(event):
global brightimage,brighttempimg

22
try:
if not os.path.isfile(destinationImg_Path) :
messagebox.showinfo("Alert", "Please select image!!!")
sys.exit()

else:
for m in range(0, v2.get()+1):
sourceimage = Image.open(destinationImg_Path)
sourceimage.thumbnail((350, 350))
scaleimg = ImageEnhancee.Brightness(sourceimage)
brighttempimg = scaleimg.enhance(m)
brightimage = ImageTk.PhotoImage(brighttempimg)
destinationcanvas.create_image(300, 210, image=brightimage)
destinationcanvas.image=brightimage
except Exception as ex:
messagebox.showinfo("Exception","Excption occurred and error
mssage is:"" "+ str(ex) +" """)
sys.exit()
# function is used to modify the image contrast
def contrast(event):
global contrasttempimg, contrastimg
try:
if not os.path.isfile(destinationImg_Path) :
messagebox.showinfo("Alert", "Please select image!!!")
sys.exit()
else:
for m in range(0, v3.get()+1):

23
scaleimg = ImageEnhance.Contrast(sourceimage)
contrasttempimg = scaleimg.enhance(m)
contrastimg = ImageTk.PhotoImage(contrasttempimg)
destinationcanvas.create_image(300, 210, image=contrastimg)
destinationcanvas.image=contrastimg
except Exception as ex:
messagebox.showinfo("Exception","Excption occurred and error
mssage is:"" "+ str(ex) +" """)
sys.exit()

# function is used to modify the image location


def rotate_image(event):
global rotatetempimg, rotateimg
try:
if not os.path.isfile(destinationImg_Path) :
messagebox.showinfo("Alert", "Please select image!!!")
else:
sourceimage = Image.open(destinationImg_Path)
sourceimage.thumbnail((350, 350))
rotatetempimg = sourceimage.rotate(int(rotate_combo.get()))
rotateimg = ImageTk.PhotoImage(rotatetempimg)
destinationcanvas.create_image(300, 210, image=rotateimg
destinationcanvas.image=rotateimg

24
except Exception as ex:
messagebox.showinfo("Exception","Excption occurred and error
mssage is:"" "+ str(ex) +" """)
# function is used to add the image border
def image_border(event):
global bordertempimg, borderimg
try:
if not os.path.isfile(destinationImg_Path) :
messagebox.showinfo("Alert", "Please select image!!!")
else:
sourceimage = Image.open(destinationImg_Path)
sourceimage.thumbnail((350, 350))
bordertempimg = ImageOps.expand(sourceimage,
border=int(border_combo.get()), fill=95)
borderimg = ImageTk.PhotoImage(bordertempimg)
destinationcanvas.create_image(300, 210, image=borderimg)
destinationcanvas.image=borderimg
except Exception as ex:
messagebox.showinfo("Exception","Excption occurred and error
mssage is:"" "+ str(ex) +" """)

# function is used to modify the image type


cvimg = cv2.imread(img_path)
if imgType_combo.get() == "Pencil Sketch":
grey_img=cv2.cvtColor(cvimg, cv2.COLOR_BGR2GRAY)
invert_img=cv2.bitwise_not(grey_img)
blur_img=cv2.GaussianBlur(invert_img, (21,21),0)

25
invblur_img=cv2.bitwise_not(blur_img)
destinationimg=cv2.divide(grey_img,invblur_img,
scale=256.0)
if imgType_combo.get() == "Water Color":
destinationimg = cv2.stylization(cvimg, sigma_s=100,
sigma_r=0.45)
if imgType_combo.get() == "Oil Painting":
destinationimg = cv2.xphoto.oilPainting(cvimg, 7, 1)
if imgType_combo.get() == "Cartoon":
gray = cv2.cvtColor(cvimg, cv2.COLOR_BGR2GRAY)

edges = cv2.adaptiveThreshold(gray, 255,


cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY,
9, 8)
data = np.float32(cvimg).reshape((-1, 3))
criteria = (cv2.TERM_CRITERIA_EPS +
cv2.TERM_CRITERIA_MAX_ITER, 20, 1.0)
_, label, center = cv2.kmeans(data, 8, None, criteria, 10,
cv2.KMEANS_RANDOM_CENTERS)
center = np.uint8(center)
result = center[label.flatten()]
result = result.reshape(cvimg.shape)
blurred = cv2.medianBlur(result, 3)

destinationimg = cv2.bitwise_and(blurred, blurred,


mask=edges)
if imgType_combo.get() == "Color Sketch":
grayimg,destinationimg = cv2.pencilSketch(cvimg,
sigma_s=10, sigma_r=0.40, shade_factor=0.02)

26
if imgType_combo.get() == "Black and White":
destinationimg,colorimg = cv2.pencilSketch(cvimg,
sigma_s=10, sigma_r=0.40, shade_factor=0.02)

cv2.imwrite(destinationImg_Path, destinationimg)
cv2.waitKey(0)
cv2.destroyAllWindows()
# function is used to save the image

def save():
global img_path, blurtempimg, blurfinalimg, brighttempimg,
brightimage, contrasttempimg, contrastimg, rotatetempimg, rotateimg,
bordertempimg, borderimg,destinationimg
try:
ext = img_path.split(".")[-1]
file=asksaveasfilename(defaultextension
=f".{ext}",filetypes=[("All Files","."),("PNG file",".png"),("jpg
file",".jpg")])

# create blur control design


imageBlur = Label(master, text="Blur:", font=("ariel 17 bold"), width=9,
anchor='e',bg="lightblue")
imageBlur.place(x=15, y=8)
v1 = IntVar()
scaleBlur = ttk.Scale(master, from_=0, to=10, variable=v1, orient=HORIZONTAL,
command=blur)
scaleBlur.place(x=150, y=10)

27
# create brightness control design
imageBrightness = Label(master, text="Brightness:", font=("ariel 17
bold"),bg="lightblue")
imageBrightness.place(x=8, y=50)
v2 = IntVar()
scaleBrightness = ttk.Scale(master, from_=0, to=10, variable=v2,
orient=HORIZONTAL, command=brightness)
scaleBrightness.place(x=150, y=55)

# create contrast control design


imageContrast = Label(master, text="Contrast:", font=("ariel 17
bold"),bg="lightblue")
imageContrast.place(x=35, y=92)
v3 = IntVar()
scaleContrast = ttk.Scale(master, from_=0, to=10, variable=v3,
orient=HORIZONTAL, command=contrast)
scaleContrast.place(x=150, y=100)

# create rotate control design


rotate = Label(master, text="Rotate:", font=("ariel 17 bold"),bg="lightblue")
rotate.place(x=370, y=8)
values = [0, 90, 180, 270, 360]
rotate_combo = ttk.Combobox(master, values=values, font=('ariel 10 bold'))
rotate_combo.place(x=460, y=15)
rotate_combo.bind("<<ComboboxSelected>>", rotate_image)

28
# create border control design
border = Label(master, text=" Border:", font=("ariel 17 bold"),bg="lightblue")
border.place(x=360, y=50)
values2 = [i for i in range(0, 55, 5)]
border_combo = ttk.Combobox(master, values=values2, font=("ariel 10 bold"))
border_combo.place(x=460, y=50)
border_combo.bind("<<ComboboxSelected>>", image_border)

# create image type cotrol design


imageType = Label(master, text="Image Type:", font=("ariel 17
bold"),bg="lightblue")
imageType.place(x=650, y=8)
imgTypeValues = ["Pencil Sketch", "Water Color", "Oil Painting", "Cartoon",
"Color Sketch","Black and White"]
imgType_combo = ttk.Combobox(master, values=imgTypeValues, font=("ariel 10
bold"))
imgType_combo.place(x=800, y=15)
imgType_combo.bind("<<ComboboxSelected>>", image_type)

# create canvas to display image


sourcecanvas = Canvas(master, width="600", height="420", relief=RIDGE,
bd=2,bg="white")
sourcecanvas.place(x=15, y=150)
destinationcanvas = Canvas(master, width="600", height="420", relief=RIDGE,
bd=2,bg="white")
destinationcanvas.place(x=650, y=150)

29
# create buttons
btnSelectImage = Button(master, text="Select Image", bg='black', fg='gold',
font=('ariel 15 bold'), relief=GROOVE, command=selected)
btnSelectImage.place(x=100, y=595)
btnSaveImage = Button(master, text="Save", width=12, bg='black', fg='gold',
font=('ariel 15 bold'), relief=GROOVE, command=save)
btnSaveImage.place(x=280, y=595)
btnExit = Button(master, text="Exit", width=12, bg='black', fg='gold', font=('ariel 15
bold'), relief=GROOVE, command=master.destroy)
btnExit.place(x=460, y=595)

master.mainloop()

30
TESTING

31
8. TESTING
8.1. UNIT TESTING:
Unit testing involves the design of test cases that validate that the internal program
logic is functioning properly, and that program inputs produce valid outputs. All
decision branches and internal code flow should be validated. It is the testing of
individual software units of the application it is done after the completion of an
individual unit before integration. This is a Structural Testing that relies on
knowledge of its Construction and is invasive. Unit tests perform basic tests at
Component level and test a specific business process, application, and /or system
Configuration. Unit tests ensure that each unique path of a business process performs
accurately to the documented specifications and contains clearly defined inputs and
expected results.

8.2. INTEGRATION TESTING:

Integration testing is a systematic technique for constructing the program


Structure while conducting test to uncover errors associate with
interfacing. Objectives are used to take unit test modules and build
program structure that has been directed by design.

The integration testing is performed for this E – LEARN INSTITUTE


when all the modules where to make it a complete system. After
integration the project works successfully.

8.3. SYSTEM TESTING:


System testing is an important stage in any system development life cycle. Testing is
a process of executing a program with the intention of finding errors. The importance
of software testing and its implications with respect to software quality cannot be
overemphasized. Software testing is a critical element of software quality assurance
and represents the ultimate review of specification, design and coding. A good test
case is one that has a high probability of finding a yet undiscovered error.

32
Testing is the set of activities that can be planned in advance and conduct
systematically. There are many ways of testing the system’s reliability, completeness
and maintainability.

8.4. VERIFICATION AND VALIDATION :


The goals of verification and validation activities are to assess and improve the
quality of the work products generated during development and modification of
software. Quality attributes of interests include corrections, completeness,
consistency, reliability, efficiency, conformance to standards and overall cost
effectiveness.

Verification and validation involve assessment of work products to determine


conformance to specification. Specification include the requirement the design
documentation , various stylistic guidelines , implementation language standards ,
project standards , organizational standards and user expectations , as well as the
meta – specification for the formats and notations used in the various product
specifications .

8.5. FUNCTIONAL TESTING:

Functional testing ensures that the requirements are properly satisfied by the
application System. The functions are those tasks that the system is design to
accomplish. This is not concerned with how processing occurs but rather with the
results of the process functional analysis based test sets tend to uncover errors that
occurred in implementing requirements or design specifications

33
SCREENSHOTS

34
9. SCREENSHOT
IMAGE EDITOR
Image Edior Starting window

SELECT IMAGE

35
Save Button :

36
BLUR IMAGE

BRIGHTNESS

37
CONTRAST

BORDER

38
ROTATE

39
PENCIL SKETCH

WATER COLOR

40
OIL PAINTING

CARTOON

41
COLOR SKETCH

BLACK AND WHITE

42
FINAL PAGE

ICON FOR EDITOR APP

43
CONCLUSION

44
10. CONCLUSION

User can Edit Image to Attractively through this Image Editor. When We Change
Our Pictures in different categories like this. It gives us some good feel. It will be
very useful in future as the youth of today are interested in changing their picture and
posting on Social Media.

45
FUTURE ENHANCEMENT

46
11. FUTURE ENHANCEMENT

In future can Combine extremely different types and even the man’s face can be
changed exactly as you want. Already many Amazing features . Already Many
Amazing features are keep coming into the Technology.

47
BIBLIOGRAPHY

48
12. BIBLIOGRAPHY

WEB REFERENCE :

Tkinter:

❖ www.w3schools.com

❖ www.tutorialspoint.com

Python:

❖ www.w3schools.com

❖ www.tutorialspoint.com

❖ www.analyticsvidhya.com

❖ www.delftsack.com

49
50

You might also like