Photo Editing App

Download as pdf or txt
Download as pdf or txt
You are on page 1of 42

PHOTO EDITING APP

Project Report
Submitted in partial fulfilment of the
requirements for the award of the Degree

BACHELOR OF SCIENCE (COMPUTER SCIENCE)


By
Sanyukta Santosh Nirgude
Seat Number: 2153018

Under the Guidance of


Mrs. RAJASHREE PRABHU

DEPARTMENT OF COMPUTER SCIENCE


V.P.M 's R. Z. Shah College
(Affiliated to University of Mumbai)
MULUND, 400081
MAHARASHTRA
(2021-2022)
VPM’s R.Z. SHAH COLLEGE OF ARTS, SCIENCE & COMMERCE
(Affiliated to University of Mumbai)
MULUND-MAHARASHTRA-400081

CERTIFICATE

This is to certify that the project titled, “PHOTO EDITOR APP”, is submitted by
SANYUKTA SANTOSH NIRGUDE bearing Seat. No: 2105318 in partial
fulfilment of the requirements for the award of degree of B.Sc (COMPUTER
SCIENCE) – Sem VI on behalf of University of Mumbai during the academic
year 2021-2022.

Internal Guide HOD/Coordinator

Date: College Seal


INDEX
SR.NO TITLE PAGE
NO
1 Introduction 4
2 Objectives 4
3 Scope 7
4 Applicability 9
5 Achievements 12
6 Organization Of Project 13
7 Flow Chart of Project 19
8 Planning And Scheduling of 22
The Project
9 System Design 23
10 Implementation And 36
Approach
11 Testing Of System 37
12 References 39
13 Conclusion 39
14 Future Scope 40
15 Bibliography Of Photo Editor 41
App
Introduction
I have designed the photo editing software using Python Programming language.
The term Photo Editor is the changing of original images. The first photo editing
happened in 1860 to the photo of president Abraham Lincoln. These images can
be digital photos, illustration, prints, or photographs on film).
Traditional editing, such as airbrushing, is done by hand. Now photo editing is
done by programs such as photoshop, gimp, Microsoft etc. Photo editing is done
for many reasons. Many photos of models are edited to remove blemishes or
make the model "better". This is usually called airbrushing or photoshopping.
Other reasons to edit a photo include fixing errors (red eye, contrast, brightness,
etc.), practical jokes, and to trick photos. Photo editing is also used to make
completely new images. Photo editing is sometimes called photo manipulation, a
term which sounds negative. Before photo editing software people used to edit
photographs by using hands. Some of the editing was done by pasting photos
together . People also used tools like ink, paints and airbrushes. Enlargers made
bigger pictures, and allowed adjustments such as brightening or darkening
different parts.
The first version of photo editing software knows as Adobe Photoshop was
released in 1987. In 2011 the first photo editing mobile apps were released on
app store. Other apps have been made for other mobile phone operating system.
These apps allow editing and photo sharing by mobile phones, computer, tablets
phones etc. There are many photo editing software available free in market.
Now a days website such as Facebook, Instagram, Snapchat allows photo
editing filter in there application for free.

Objectives
The following are the objectives of the project-
* Think and plan before editing photos.
* Have a basic working knowledge of digital photo editing using python
language.
* Edit good photos into great photos.
* Create visually interesting photos of people, places and things.
* Try to experimenting more with their editing skills to improve photos.
* Identify opportunities for creatively editing more advanced photos.
* Use digital photography editing to communicate with people across the world.

*Challenge ourselves with a variety of photo editing techniques and skills.


*Learn the editing techniques that have been applied to photos.
* Engage different methods about how to creatively edit photos.
*Repair and modify slightly damaged prints that you scan into your computer.
* Look carefully at photos and provide polite, constructive and helpful criticism.
* Use criticism and advice from other members to enhance their projects.
* Practice daily on your editing skills.
*Try Different techniques, filters to work better on your images.
*Do not use disadvantage of photo editing skills it may harm other people in
your society.
*No photo is important than your safety and as well as public

ACKNOWLEDGEMENT
It gives great pleasure and pride as I presented my project on PHOTO EDITOR
APP”. This acknowledgement is a small effort to express and our gratitude to all
those who have shown me the path to bring out the various colours of this
project with their vast treasure of experience and knowledge. I would like to
express my sincere thanks to Mrs. RAJASHREE PRABU who helped me
throughout the project for providing me support, conductive work environment
and needful suggestions and guidance to conclude this project on time. Mrs.
RAJASHREE PRABU has provided me with the guidance and necessary
support during each phase of the project.
Purpose, scope and Applicability
The following purpose of this project is –

*The implementation of photo editing software using python enables the


reproduction, publication, and distribution of all printed images all over the
world.
*To be very precise we say that editing occurs by sorting pictures. To correctly
define Photo editing using programming, we say that this is the stage where
pictures are chosen as part of a specific photo project.

Scope-
The following scope of this project is-
Business like
marketing, Quality Project Plan
fashion,
advertising

Control Scope Validation

Service, process, review Evaluation Result

*Image editing Software using Python is needed for many things. However, the
primary and most aim of photo editing services is to modify an image for making
it more attractive and appealing.

*A lot of techniques will be used by editors to create a better version of the


original image with the help of this software.

*It includes clipping path, retouching, image restoration, masking, colour


correction, shadow services, etc.

*Different businesses are utilizing the help of image editing such as e-commerce
business, real estate, advertising and marketing, magazine, apparel industry,
fashion, photography, and a lot more.

*Therefore, image editing is gaining great significance, relevance, and popularity


in the business field.
*A lot of businesses use images for advertising and marketing their products and
to grab the attention of their customers. Therefore, it has become important for
businesses to use the help of photo editing software services to make their photos
and advertisement attractive. It helps the images for displaying them on the
internet and other media.

For example, in the e-commerce industry, photos are prime factors that are
responsible for attracting customers. Here, a single edited photo or poster can
convey more details to a customer than a long product description. This is also the
same for real estate, apparel industry, fashion, etc.

*Images once captured can be edited in-camera by the photographer.

*Once images are taken off the camera the photographer or editor will view the
images and begin to rank them.
*Unusable images are deleted and multiple images of the same scene are kept on
hold. Post processing edits are usually applied, e.g. lighting corrections and
removal of lens distortions, are applied to the content is better viewed.

Applicability-
The following applicability of this project are-

The Following types of Photo editing software available in various platform-


(Simple Photo Editor using python language ) (Photo editing application available in android)
(Photo editing software available in IOS platform) (Photo editing software available in windows)

*Some applications allow you to make only a few basic changes, while others
give you access to advanced and powerful tools and functions. Some of the
software are free and some are paid.
*Most computer systems and mobile devices come with basic image editing
program.
* Almost every Windows computer includes Microsoft Paint. Paint is a simple
drawing application, but it can also be used for basic image adjustments and
transformation.
*Another software in windows is Microsoft Photos, it is a free application that
includes more advanced editing tools and let you easily organize photos.
* Mac book or IOS include Preview. While this program is primarily used for
viewing images and PDF files, it also includes several basic editing tools. New
Mac books also come pre-installed with Apple Photos, which you can use to
organize and edit photos.
* Photos taken on Android devices can be adjusted and edited in
the Google Photos application or the Gallery application.
*Photo Editing Software made with Python Programming language is also a
basic free editing tool just for project, but it has several options of editing tools.

Achievements
*The number of softwares achieved rewards are as follows-

Snapseed-

*It is developed by United States-based Nik Software and now owned by


Google.

*Snapseed is a professional photo editor software for iOS and Android. This app
is available for all types of editing with control over colour and exposure.

* Recently, this software hits 130 million monthly active users across the world.

VSCO Photo Editor-


*It is one of the most popular and best photo editor Software. It is a creative
channel that created by the American company named Visual Supply Company.

*This photo editor application has received the total funding amount of $95
million and has 30 million monthly active users across its platform. This
Software has number of accounts grown 802 percent year over year.

*The images that are published on this platform are up by 952 percent and 5
billion images are viewed each month. The company says that approximately 80
percent of its user base is international, and that is explosive growth.

Organization of Project-
The introduction is made up of many different sections, as shown below.
*Background:
A summary of the project's history and context, as well as its relationship to
previous work in the area. A outline of existing projects in the area where this
project will be implemented.

*Objectives:
A concise explanation of the project's goals and objectives. What exactly this
project will involve is given in this section.

*Purpose:
A description of the project's topic that answers queries about why it's being
done. Project's potential to improve the system's importance and theoretical
framework will be included here.

*Scope:
A brief description of the scope, assumptions, and constraints.
*Applicability:
This section discusses about how this project will benefit the computer industry
and people.

*Achievements:
How much knowledge is gained as a result of completing this project. What
goals are achieved and have they met my expectations.
*Organisation of Report:
*Survey of Technologies:
1.PYTHON-

*Python is a highly interpreted language, it is an interactive and object-


oriented scripting language. Python is designed to be highly readable. It uses
most common keywords whereas in other languages punctuation are used
and it have few syntax constructions rather than other languages.
*Python is an Interpreted language− Python is being processed at runtime by
the interpreter. Did not need to compile a program before execution. Similar
to PERL and PHP.
*Python is an Interactive language – You can work on actually code at a
Python command prompt and interaction with the interpreter.
*Python is an Object-Oriented language − Python supports various Object
Oriented style or technique for programming that it will encapsulate code
within objects.
*Python is a Beginner Language − Python is a simple and sophiscated
language for beginners and it supports large development of a wide range of
applications from simple text processing to WWW browsers to games.
Features of Python:
• Easy-to-maintain − Python's source code is easy-to-
maintain.
• Broad standard library − Python's bulk library is portable
and crossplatform on UNIX, Windows, and Macintosh.
• Interactive Mode − Python have support to an interactive
mode which allow interactive testing and debug of snippets
of code.
• Portable –It could run on any hardware platforms and have
the same interface on all platforms.
• Extendibility – It can add low-level modules to the Python
interpreter. These are modules which enables the
programmers’ to add or customize their tools to be
efficient.
• Databases − It provides interface to a major commercial
databases.
• GUI Programming – It supports GUI applications that
could be created and ported to more system calls, libraries
and windows systems, like Windows MFC, Macintosh,
and the X Window system of Unix.
• Scalability – It can provide a better data structure and it
supports for large programs than shell scripting.
Some salient features of python:
*It supports functional and structured program methods like
OOPs.
*It could be used as a scripting language or could be compiled
to byte-code to build a large applications.
*It can provide dynamic data types and support dynamic type
checking.
*It can support automatic garbage collection.
*It could integrate with languages like C, C++, COM, ActiveX,
CORBA, and Java.
2. Computer Vision-
Computer Vision could be defined as discipline that explains how to
reconstruct, interrupt, and understand a 3D scene from its 2D images, in
terms of the properties of the structure present in the scene.
It will deal with modelling of image and replicating the ages according to
human vision using computer software and hardware.
Computer vision is the view of construction that explicitly and with
descriptions of physical objects from their image. The output of computer
vision is an interpretation of 3D diagram.
*Computer Vision Hierarchy:
*Computer vision is divided into three category:–
Low-level vision − It processes an image for the feature extraction.
Intermediate-level vision − It can include object recognition and 3D scene
description.
High-level vision – It could include interpret description of a scene as activity,
intention and behaviour.

3. Machine learning-
*Machine learning is an application of artificial intelligence (AI) that can provide a system of the
ability to automatic learn and improve from their experience without explicit programmed.
*Machine learning can focus on the development of computer programs which can access the data
and use to learn from themselves. The process of learning begins from observations or data the
primary aim is allowing the computers to learn automatically without human intervention or
assistance and adjust actions accordingly.

This Project illustrates what technologies and Programming languages are used
in making this project and what problem was there in existing system are
explained in detail. Why did we chose a particular Programming language for
the implementation is this project is also mentioned.

Requirements and Analysis has several sections such as-

*Problem Defination:
The problem that the I will be working on during the assignment. Specifics
about the main problem before breaking it down into sub-problems.

*Requirements Specification:
Here we determine what are the functional and non-functional requirements
required for this project.

*Planning and Scheduling:


Software development involves a lot of planning and scheduling. For our
purposes, planning entails identifying all of the tiny activities that must be
completed in order to achieve the goal. Planning also considers rules, sometimes
known as limitations, that govern when particular activities may or cannot be
completed. Scheduling is the process of evaluating whether or not sufficient
resources are available to carry out the plan.

*Software and Hardware Requirements:


All of the software and hardware requirements for the project's development and
implementation.

*Hardware Requirement: This section must include the essential hardware, such
as a graphics card, numeric coprocessor, mouse, disc capacity, RAM capacity,
and so on, to operate the software.

*Software Requirements:
This section must list the operating system, compiler, testing tools, linker, and
libraries, among other things, that are required to compile, link, and install the
software.

*Preliminary Product Description:


The new system's requirements and objectives must be mentioned. The
functions and functioning of the application/system that we are creating as part
of their project must be explained in detail.

*Conceptual Models:
It describes operations that can be performed on the system, and the allowable
sequences of those operations. Conceptual Models could consist of complete
Data Flow Diagrams, ER diagrams, Object-oriented diagrams, System
Flowcharts etc.
In effect, summarising the remaining chapters of this project report offering the
reader an outline of the project report's contents.
*A well-planned and organised attitude to work
* Work in the organisation will be well-planned and organised. The data will
be correctly saved in data stores, which will aid in both retrieval and storage of
information.
*The proposed system will have a better level of accuracy. All operations would
be completed appropriately, and any information received from the centre would
be accurate.
*Due to the reasons described above, the suggested system will have a high
level of reliability. The increased system reliability can be attributed to the fact
that data is now properly stored.
*In the proposed system, every effort would be made to ensure that no
information is duplicated anywhere, whether in storage or elsewhere. This will
ensure efficient storage space utilisation and data consistency.
*The suggested system's major goal is to make information retrieval quick and
efficient.
*In a manual system, it can be difficult to save a huge volume of data.
*The system should be simple to use and designed in such a way that it may be
produced in a short amount of time while staying within the user's budget.
FLOW CHART OF PROJECT
1.Case Diagram Of the Project-

*The shown case diagram distinguishes the different parts of Photo editing
software using Python. It provides a Web-based interface for ordering a
products, where the photo editor software is used to edit programs to every local
computer.
*The photo editor software and web process are in different processes. This
also means that they are two independent applications and have no anticipated
dependencies.
*It use cases for loading and saving pictures in the photo editor, as well as a use
case for uploading images to the Web application.
*It simplest is a representation of a user's interaction with the system and
depicting the specifications of a use case. A use case diagram can portray the
different types of users of a system and the case and will often be accompanied
by other types of diagrams as well.

*Refined based software requirements-


Requirements Type Summary

F: photo_Editor Functional Customer shall be able to perform basic photo post-


processing on their digital image. The GUI shall be similar to GUI model
provided in the file photo Editor GUI. vsd. The GUI model shows the screen layout and
and approximate position of the of the buttons. The
buttons should be chosen so that they can be used intuitively.
F:error_handling Functional Errors shall be reported via exception. The exception
handling mechanism is based on the Microsoft Excep- tion Management Application Block
and needs to be ext- ented to show error messages in a window on the screen.
Every Exception shall be displayed on the screen within a dialog window. A
meaningful error message shall be displayed.

F:picture_load_and_save Functional It shall be possible to load pictures into the photo editor
software, alter them, save them either to the same way or to the new file.

F:image_crop Functional If an image is loaded then the photo editor shall provide
functionally to select a region of interest and crop the image to the region.

F:image_rotate Functional If an image is loaded then the photo editor shall provide
functionally to select a region of interest and crop image to that image.

F:image_flip Functional If the image is loaded the photo editor shall be able to
rotate an image by 90 degree in both directions.

*The photo_editor Requirement The photo editor application will run in its
own namespace. For this iteration, the photo editor application will provide
basic functionality. The figure shows the screen layout and the controls used. It
does not define the exact appearance or shapes of the resources that are used to
implement the GUI. We’re using a toolbar menu containing the items
Open, Save, Save As, and Exit. For the image-processing functionality, a
Tab Control with buttons is provided. The idea is to group related functionality
on one tab and to provide other tabs for other groups of functionality.
* The error_handling Requirement Errors are reported via the exception-
handling mechanism. Various messages will be available to identify the error
that led to the message. The errors will be reported via message boxes and will
contain meaningful error messages.
*The picture_load_and_save Requirement Users will be able to load and save
rectangular pictures. The load and save option is part of the File menu. Users
can browse for files or specify a file manually, and we use the standard
Windows Forms Open/Save File dialog
*The image_crop Requirement Image crop allows users to extract a rectangular
part of the image. When the Crop button is pressed, a dialog window opens and
the user is asked to type in the width and height of the cropped image. The
image is cropped to the size specified by the user if the size specified is smaller
than the actual image; otherwise, it is ignored. The cropping is done in a way
that the midpoint of the original image is the midpoint of the cropping rectangle
defined by the user. The area outside the cropping rectangle is deleted, and the
new image in the new size is shown. If the defined cropping rectangle is larger
than the image, no cropping is done.
The image_rotate Requirement The image can be rotated in 90 degree steps
clockwise and counterclockwise. The image will be shown in the same location
and with the same midpoint as the original image.
The image_flip Requirement By pressing the image flip buttons, users can flip
the image either horizontally or vertically. By “flip,” we mean mirroring the
image. The position of the midpoint of the image stays the same. The image will
be shown in the same location and with the same midpoint as the original image.
The image_format Requirement The standard formats for pictures are supported.
If an image with another format is selected, an error message will be shown.

Planning And scheduling of the Project

SR.NO. Task Activity Start End Duration


Days Days
1. Deciding the Project Topic Decision 25/6/21 28/6/21 3 days
2. Collecting the documentation 𝑇ℎ𝑒 𝑝𝑟𝑜𝑗𝑒𝑐𝑡 𝑑𝑎𝑡𝑎 30/7/21 10/7/21 10 𝑑𝑎𝑦𝑠
Of the Project. Gathered from
Different sources.
3. Problem Definition The data is 11/7/21 20/7/21 9 days
collected through
visual studio code
and it has good
performance level.

4. Requirements Analysis Requirements 21/7/21 22/7/21 2 days


such as hardware
and software
should be
required.
5. System Design Case diagrams, 23/7/21 29/7/21 7 days
Uml diagrams,
And different
diagrams for the
system.
6. Implementation and Coding Trying to 30/7/21 20/9/21 50 days
implements code
and solved lots of
error
7. Unit Testing The system 21/9/21 27/9/21 9 days
checking
8. Integration and Validation All the testing will 28/9/21 30/9/21 3 days
be done and if
error occurred
then will debug
9 System Testing The whole system 1/10/21 5/10/21 5 dyas
will be checked,
validated,
debugged then we
can use it
10. Project Documentation Reports made in 6/10/21 15/21 9 days
PDF file
SYSTEM DESIGN
The programming code of the project=

(A) Main.py

(B) Init.py
(C) editBar.py
(D) filterFrame.py
(E)adjustFrame.py
(F)imageViewer
(G)setup.py
Screenshot of Simple Photo editor software

Pick an image and load the simple to the application


Select Draw option to draw on the selected Photo

Now click on the filter option to apply filter

We have selected negative filter


To change the filter we have to select clear option first and proceed to next filter

Now we have selected Black and white filter

Select the emboss filter


Gaussian Blur
To adjust some of filter such as Brightness, Exposue, Contrast, Highlights

Implementation And Approach


*Testing Objectives-
The main objective of testing is to remove a host of errors, systematic
and with less effort and time. Stating formally, altogether, Testing is a
process of executing a program with the intent of finding an error.
Successful test is the one that solves an undiscovered error. A good test
case can be one that have a highest probability of finding error, if it is
present. The software is more or less confirmations to the quality and
reliable standards.

*Implementation Approaches-

*The spiral model is a systems development lifecycle (SDLC) method


used for risk management that combines the iterative development
process model with elements of the Waterfall model.
*The spiral model is used by software engineers and is favoured for
large, expensive and complicated projects. When viewed as a diagram,
the spiral model looks like a coil with many loops. The number of loops
varies based on each project.
*The spiral model needs to enable gradual and important releases and
refine the product at each phase of the spiral and the ability to build a
prototypes or modules at each phase.
*The important feature of this model is ability to manage the unknown
risks after the project has been commenced; creating a prototype that
makes feasible.

*When
looking at
a diagram of a spiral model, the radius of the spiral represents the cost of
the project and the angular degree represents the progress made in the
current phase. Each phase begins with a goal and ends with the developer
or client reviews of the progress.
*The overall goal of the phase should be determined and all objectives
should be elaborated and analysed. It is important thing to identify the
alternative solutions in case of the attempt version which fails to perform.

*The risk analysis should be performed on possible solutions in order to


find any faults or vulnerabilities. Each risk should be resolved using the
most appropriate and strategy.
*In next quadrant, the prototype should be built and tested. This includes various
step like architecture design, designing the modules, physical appearance of
product design and final design of product. It had taken the proposal that have
been created in the first 2 quadrants and turns it into application that can be
utilized.

*Finally, in the last quadrant, the test results of the new version are
evaluated. This can be analysed and allows programmers to stop and
understand what it had worked and what it didn’t work before proceeding
with a new build work. At the end, planning for the next begins and the
cycle repeats again.

Testing of System
Testing activity is carried down by a team of testers, in order to find the
defect in the software. Test carried on the piece of software and if they
encounter any defect for e.g. actual results don't match expected results.
Along with the nature of defect, testers also have to report at what point
the defect occurred and what happened due the occurrence of that defect.
All this information will be used by development to DEBUG the defect.
Debugging is the activity which is carried out by the developer, after
getting the test report from the testing about defect(s) (you may note
defects can also be reports by the client). The developer then tries to find
the cause of the defect, in this quest he may need to go through lines of
code and find which part of code in causing that defect. After finding out
the bug, he tries to modify that portion of code and then he rechecks if
the defect has been finally removed. After fixing the bug, developers
send the software back to tester to run the program successfully.
List of test cases carried out with different size file.
Test Case ID Input Case Output Case Status
1. Picking Image Size No Error PASS
Upto 1mb size.

2. Picking Image size No Error PASS


upto 5mb size.

3. Picking No Error PASS


JPG,PNG,JPEG
Image format.

4. Picking GIF image No Error PASS


format.
5. Editing No Error PASS
JPG,PNG,JPEG
Image format.

6. Editing GIF image Error FAIL


format.
7. Editing Image size No Error PASS
upto 5mb size.

8. View the image No Error PASS


before editing.
9. View the image No Error PASS
after editing.

REFERENCES
*Ryan Cohen and Tao Wang, GUI Design for Android App, 2014.
* Hays, Pierre-Yves Laffont , Zhile Ren , Xiaofeng Tao, and Chao Qian,
Photo editing algorithm changes weather, seasons automatically, Brown
University, 2014.
*Jamie Ludwig, Image Convolution, Portland State University, 2013.
*Reto Meier, Professional Android 4 Application Development, 2012.
*Michael Burton and Donn Felker, Android Application Development
For Dummies, 2nd Edition, 2012.
*Yael Pritch, Eitam Kav-Venaki and Shmuel Peleg, Shift-Map Image
Editing, The Hebrew University of Jerusalem, 2009.
*Lei Zhang, Yanfeng Sun, Mingjing Li, Hongjiang Zhang, automated
red-eye detection and correction in digital photographs, Microsoft
Research Asia, 2007

Conclusion
Taking a brief dive into photo editing, we used Pillow to format and filter a
photo. We used tkinter for the front-end portion to display the updating photo
and our button options. Incorporating a loop, we were able to undo all of our
changes. For the app to work, our original photo must be small enough to
display, and also must be named “tiger.jpg”. This way, we could iterate through
the photos. Although it did not deal with videos, Pillow was an interesting first
look in the photoshop world. The application had a few working functions but
has room for expansion and customization. Hopefully, you can take what we
looked at with Pillow and make your own photoshop application.
Future Enhancement

For the uses, cultural impact, and ethical concerns of image editing, see Photo
manipulation. For the process of culling and archiving images, see Digital asset
management. For the restoration of physical photographs using digital
techniques, see Digital photograph restoration.
Image editing encompasses the processes of altering images, whether they
are digital photographs, traditional photo-chemical photographs, or illustrations.
Traditional analog image editing is known as photo retouching, using tools such
as an airbrush to modify photographs or editing illustrations with any
traditional art medium. Graphic software programs, which can be broadly
grouped into vector graphics editors, raster graphics editors, and 3D modelers,
are the primary tools with which a user may manipulate, enhance, and transform
images. Many image editing programs are also used to render or
create computer art from scratch.

Bibliography of photo editor app


www.youtube.com
https://stackoverflow.com
http://github.com
www.geeksforgeeks.com

You might also like