Tải bản đầy đủ (.pdf) (29 trang)

BÁO CÁO CUỐI KÌ Phần mềm chỉnh sửa ảnh

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.59 MB, 29 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THƠNG TIN
KHOA CƠNG NGHỆ PHẦN MỀM

~~~~~~*~~~~~~

BÁO CÁO CUỐI KÌ
Lớp: IT008.K12.PMCL

ĐỀ TÀI:PHẦN MỀM CHỈNH SỬA ẢNH

SV1: Huỳnh Thế Anh | 18520448
SV2: Lưu Trung Nguyên | 18521158
SV3: Phạm Hoàng Nhật Trường | 18521570
Giảng viên hưỡng dẫn: Mai Trọng Khang


Mục lục
Chương 1: Mở đầu ....................................................................................................................... 3
Chương 2: Cơ sở lý thuyết ........................................................................................................... 4
I. Github ....................................................................................................................................... 4
1. Github là gì ? .................................................................................................................... 4
2. Tại sao sử dụng GitHub ?................................................................................................. 4
2.1GitHub cho mọi người thấy khả năng code của thành viên .................................... 4
2.2 GitHub giúp từng cá nhân cải thiện code. .............................................................. 5
2.3 GitHub là môi trường thực tế sau này .................................................................... 5
II. C# ............................................................................................................................................ 5
1. C# là gì ? .......................................................................................................................... 5
2. Đặc trưng của C# ............................................................................................................. 5
2.1 C# Là ngôn ngữ đơn giản. ..................................................................................... 5
2.2 C# là ngôn ngữ thuần hướng đối tượng ................................................................. 5


2.3 So sánh C# với 2 ngôn ngữ C và C++ ................................................................... 6
2.4 Nền tảng .Net ......................................................................................................... 6
III. Visual Studio .......................................................................................................................... 7
1. Visual Studio là gì ? ......................................................................................................... 7
2. Một số tính năng chính..................................................................................................... 7
2.1 Biên tập mã ............................................................................................................ 7
2.2 Trình gỡ lỗi ............................................................................................................ 7
2.3 Thiết kế................................................................................................................... 7
Chương 3: Quá trình thực hiện .................................................................................................... 8
I. Thiết kế giao diện. .................................................................................................................... 8
1. Ý tưởng ............................................................................................................................ 9
2. Nội dung giao diện ........................................................................................................... 9
2.1 Trung tâm xử lý.................................................................................................... 10
1


2.2 Thanh công cụ ...................................................................................................... 11
2.1.1. File ........................................................................................................... 11
2.1.2 Edit ............................................................................................................ 12
2.1.3 Tools.......................................................................................................... 13
2.1.4 View ....................................................................................................... 14
2.1.5 Layer ......................................................................................................... 14
2.1.6 Color.......................................................................................................... 15
2.1.7 Filter .......................................................................................................... 15
2.1.8 Help ......................................................................................................... 16
2.3 Bảng chọn ............................................................................................................ 16
2.3.1. Bảng màu ................................................................................................. 16
2.3.2 Bảng lệnh .................................................................................................. 17
2.3 Thanh lịch sử và kiểm soát layer.......................................................................... 17
2.3.1 Thanh lịch sử ............................................................................................. 17

2.3.2 Thanh Layer ............................................................................................. 18
II. Thực hiện Code ..................................................................................................................... 19
1. Tạo hình form ................................................................................................................. 19
2. Chỉnh sửa ảnh ................................................................................................................. 20
3. Chỉnh sửa màu................................................................................................................ 20
Chương 4: Kết quả đạt được ...................................................................................................... 21
Chương 5: Tài liệu tham khảo.................................................................................................... 28
Chương 6: Danh sách thành viên ............................................................................................... 28

2


Chương 1: Mở đầu
Con người đang sinh sống trong biển cả thông tin, trong từng giây, từng phút chúng ta đều
tiếp xúc với tin tức một cách tự giác hoặc khơng tự giác. Và xã hội càng phát triển thì cách thức
con người tiếp xúc với tin tức càng thay đổi theo hướng tích cực. Với những bước tiến như vũ
bão những thập kỉ cuối của thế kỉ XX, Công nghệ thông tin đã tạo nên một diện mạo mới cho
cuộc sống con người và mở ra cho nhân loại một kỉ nguyên mới - kỉ nguyên công nghệ thông tin.
Có thể khẳng định CNTT đang giữ một vai trị quan trọng trong sự phát triển của lồi người nói
chung và sự phát triển kinh tế, chính trị, xã hội của một đất nước.
Trong sự phát triển đó lại có vô vàn những nhánh phát triển nhỏ hơn, mà mỗi nhánh lại mang
một đặc thù và vai trò riêng của nó. Bằng việc ứng dụng các cơng nghệ tiên tiến, hàng loạt những
đứa con của công nghệ đã ra đời để phục vụ cho con người từ những việc cao cả như vệ tinh,
robot, thám hiểm mặt trăng, nghiên cứu các khu vực nguy hiểm cho đến những công việc hằng
ngày như phần mềm quản lý, thiết bị báo cháy, game hay mạng xã hội.
Là một sinh viên của trường đại học công nghệ thông tin, là kĩ sư phần mềm tương lai, chúng
em có trách nhiệm kế thừa những tinh hoa cơng nghệ và phát triển, ứng dụng nó để tạo ra những
sản phẩm thực tế, phục vụ nhu cầu cần thiết của con người. Qua khảo sát và nghiên cứu thực tế,
nhu cầu về việc chụp ảnh, ghi lại những khoảng khắc, tạo ra những đoạn phim chất lượng, màu
sắc đẹp, độ phân giải cao. Minh chứng rõ ràng nhất là gã khổng lồ Apple đã liên tục trao dồi, phát

triển camera chụp ảnh để tạo ra những bức ảnh đẹp nhất, chân thực nhất. Bên cạnh một thiết bị
chụp ảnh tốt, không thể thiếu những phần mềm chỉnh sửa ảnh chất lượng, nó là cách tay đắc lực
cho các nhiếp ảnh gia hay kể cả những bạn trẻ thích chụp ảnh. Nó gần như là xương sống cho
ngành điện ảnh.
Theo khảo sát, trung bình một chiếc điện thoại đều có ít nhất 1-2 app chỉnh sửa ảnh và con số
này là 2-3 đối với các bạn nữ. Có hàng chục phần mềm chỉnh sửa ảnh nổi tiếng mà bạn có thể bắt
gặp những thương hiệu, logo qua những tấm ảnh được đăng tải trên mạng xã hội hằng ngày. Như
Ulike, B612, Snapseed, Picsart,.... Đó là những phần mềm chỉnh sửa ảnh phổ thông, dễ dàng sử
dụng cho mọi người, ở mức chuyên sâu hơn, khó sử dụng hơn là các phần mềm chỉnh sửa ảnh
chuyên nghiệp, mà thơng dụng nhất, chính là đứa con của Adobe, Adobe Photoshop. Bằng việc
sử dụng các giải thuật phức tạp, Photoshop gần như có thể làm mọi thứ theo ý bạn muốn, lượng
chức năng đa dạng, phong phú đã tạo nên thương hiệu của photoshop.
Chính vì thế, nhóm tụi em quyết định mô phỏng lại phần mềm photoshop, trong giới hạn về
kiến thức và thời gian, nhóm chúng em sẽ cố gắng hết sức để tạo ra nhiều chức năng nhất và hoàn
thiện sản phẩm một cách chu đáo nhất.

3


Chương 2: Cơ sở lý thuyết
Để thực hiện được đồ án này, nhóm em đã có một buổi gặp mặt riêng để phân chia nhiệm vụ
và xác định khối lượng công viêc, đồng thời vạch ra chiến lược thực hiện. Bảng phân công công
việc sẽ được kèm trong file.
Nhận thấy đây là đồ án phức tạp, đòi hỏi từng thành viên phải code nhiều và am hiểu các
thuật toán liên quan đến chỉnh sửa ảnh, nhóm tụi em đã quyết định chọn ra những công cụ hỗ trợ
sau,

I. Github
Vấn đề đầu tiên và cơ bản nhất khi làm việc nhóm đó là chúng ta phải làm việc với nhiều
người. Hay kể cả làm việc một mình thì việc quản lý source code là vơ cùng quan trọng.

Theo như nhóm tìm hiểu thì có 2 mơ hình quản lý source code: Quản lý tập trung (SVN), Quản
lý phân tán (git). Mỗi hình thức đều có ưu và nhược điểm riêng. Nhóm tụi em sẽ giới thiệu sơ
qua về Github và cách nhóm sử dụng git để làm việc với nhau.

1. Github là gì ?
GitHub là một dịch vụ nổi tiếng cung cấp kho lưu trữ mã nguồn Git cho các dự án phần
mềm. Github có đầy đủ những tính năng của Git, ngồi ra nó cịn bổ sung những tính năng về
social để các developer tương tác với nhau. Như vậy, GitHub sẽ:


Là công cụ giúp quản lý source code tổ chức theo dạng dữ liệu phân tán.



Giúp đồng bộ source code của team lên 1 server.



Hỗ trợ các thao tác kiểm tra source code trong quá trình làm việc (diff, check
modifications, show history, merge source, …)

2. Tại sao sử dụng GitHub ?
2.1 GitHub cho mọi người thấy khả năng code của thành viên
Nhìn vào lịch sử hoạt động của một tài khoản GitHub cho bàn biết nhiều điều: thời gian bắt
đầu, các project từng tham gia. Điều này cho phép quản lý hay nhóm trưởng có thể theo dõi và
đánh giá code của thành viên, qua đó có thể đưa ra đúng năng lực thật sự của mình và đưa ra các
nhiệm vụ, deadlines phù hợp, đồng thời có thể dễ dàng quản lý project của mình khi GitHub ghi
lại toàn bộ lịch sử commit.

4



2.2 GitHub giúp từng cá nhân cải thiện code.
GitHub là một công cụ tuyệt vời giúp từng thành viên trong nhóm quan sát và so sánh code
với nhau. Nó cho phép thành viên đọc code của các thành viên khác và so sánh những lần
commit, điều này giúp mỗi thành viên luôn phải tự thúc đẩy bản thân code để hồn thành tiến độ
và dealine của mình. Và từng thành viên có thể học hỏi được những kinh nghiệm và kĩ thuật xử
lý của thành viên khác thông qua lịch sử commit của họ, đây là một môi trường tuyệt vời để cá
nhân tự phát triển khả năng của bản thân

2.3 GitHub là môi trường thực tế sau này
Hầu hết các công ty hiện nay đều sử dụng GitHub, cho nên viêc làm quen với GitHub khi
còn học đại học là điều vơ cùng cần thiết, khơng chỉ thế, nó giúp chúng ta lưu lại những đồ án,
sản phẩm, dự án chúng ta hoàn thảnh, khi HR phỏng vấn, họ dễ dàng xem các projects mà chúng
ta hoàn thành từ đó có thể đưa chúng ta vào các vị trí thích hợp.

II.C#
C# là ngơn ngữ được chọn để nghiên cứu trong bộ mơn Lập Trình Trực Quan, bên cạnh đó
cịn có WPS, tuy nhiên để dễ dàng nghiên cứu và học tập thì nhóm đã chọn C# để code. Dưới đây
là một số thông tin cơ bản về ngôn ngữ C#.

1. C# là gì ?
C# là một ngơn ngữ lập trình hướng đối tượng được phát triển bởi Microsoft, là phần khởi
đầu cho kế hoạch .NET của họ. Microsoft phát triển C# dựa trên C++ và Java. C# được miêu tả
là ngơn ngữ có được sự cân bằng giữa C++, Visual Basic, Delphi và Java.
C# được thiết kế chủ yếu bởi Anders Hejlsberg kiến trúc sư phần mềm nổi tiếng với các sản
phẩm Turbo Pascal, Delphi, J++, WFC. Phiên bản gần đây nhất là 8.0, được phát hành vào năm
2019 cùng với Visual Studio 2019 phiên bản 16.3.

2. Đặc trưng của C#

2.1 C# Là ngôn ngữ đơn giản.
Như ta đã biết thì ngơn ngữ C# dựng trên nền tảng C++ và Java nên ngôn ngữ C# khá đơn
giản. Nếu chúng ta thân thiện với C và C++ hoậc thậm chí là Java, chúng ta sẽ thấy C# khá giống
về diện mạo, cú pháp, biểu thức, toán tử và những chức năng khác được lấy trực tiếp từ ngôn ngữ
C và C++, nhưng nó đã được cải tiến để làm cho ngôn ngữ đơn giản hơn. Một vài trong các sự cải
tiến là loại bỏ các dư thừa, hay là thêm vào những cú pháp thay đổi.

2.2 C# là ngôn ngữ thuần hướng đối tượng
Lập trình hướng đối tượng(tiếng Anh: Object-oriented programming, viết tắt: OOP) là một
phương pháp lập trình có 4 tính chất. Đó là tính trừu tượng (abstraction), tính đóng gói
5


(encapsulation), tính đa hình (polymorphism) và tính kế thừa (inheritance). C# hỗ trợ cho chúng
ta tất cả những đặc tính trên.

2.3 So sánh C# với 2 ngôn ngữ C và C++

C
C++
Procedural (tuân thủ thủ
Hỗ trợ hướng đối tượng
tục)
Cấp độ abstract thấp
Cấp độ abstract thấp
nhất
Quản lý bộ nhớ thủ
Quản lý bộ nhớ thủ cơng
cơng
Dung lượng rất nhẹ, có

trình biên dịch

Dung lượng nhẹ, có trình
biên dịch

Hiệu suất nhanh, ưu việt
Có thể code cho bất kỳ
loại nền tảng nào
Cho phép code gần như
tất cả ứng dụng, cú pháp
chuẩn

Tương đương với C
Có thể code cho bất kỳ loại
nền tảng nào
Cho phép code gần như tất
cả ứng dụng, cú pháp chuẩn

C#
Hỗ trợ hướng đối tượng
Cấp độ abstract cao
Cơ chế thu gom rác
Có thể thơng dịch sang
bytecode, biên dịch được bởi
CLR, các nhị phân lớn hơn
Hiệu suất bình thường
Hướng tới hệ điều hành
Windows
Hiển thị cảnh báo cho trình
biên dịch để giảm lỗi nghiêm

trọng

2.4 Nền tảng .Net
Dot Net (viết tắt .NET) là một nền tảng (Framework) cho phép lập trình viên sử dụng để
phát triển các ứng dụng, website. Nền tảng này được phát triển bởi Microsoft nó chạy trên hệ
điều hành Microsoft Window. Chú ý rằng .NET khơng phải là ngơn ngữ lập trình, mà là nền
tảng cho phép các ngơn ngữ lập trình khác nhau như C# sử dụng để tạo nên các website, ứng
dụng trên Internet.
Cấu tạo của .NET là một bộ các dòng code được viết sẵn bởi các lập trình viên Microsoft,
các lập trình viên khác sử dụng nền tảng này để phát triển các ứng dụng và dịch vụ web khác
một cách nhanh chóng hơn.

6


III. Visual Studio
1. Visual Studio là gì ?
Visual studio là một trong những cơng cụ hỗ trợ lập trình và thiết kế website rất nổi tiếng
nhất hiện nay của Mcrosoft và chưa có một phần mềm nào có thể thay thế được nó. Visual Studio
được viết bằng 2 ngơn ngữ đó chính là C# và VB+. Đây là 2 ngơn ngữ lập trình giúp người dùng
có thể lập trình được hệ thống một các dễ dàng và nhanh chóng nhất thông qua Visual Studio.
Visual Studio là một phần mềm lập trình hệ thống được sản xuất trực tiếp từ Microsoft. Từ
khi ra đời đến nay, Visual Studio đã có rất nhiều các phiên bản sử dụng khác nhau. Điều đó, giúp
cho người dùng có thể lựa chọn được phiên bản tương thích với dịng máy của mình cũng như
cấu hình sử dụng phù hợp nhất.
Bên cạnh đó, Visual Studio cịn cho phép người dùng có thể tự chọn lựa giao diện chính cho máy
của mình tùy thuộc vào nhu cầu sử dụng.

2. Một số tính năng chính
2.1 Biên tập mã

Giống như bất kỳ một IDE khác, Visual Studio gồm có một trình soạn thảo mã hỗ trợ tơ sáng
cú pháp và hồn thiện mả bằng các sử dụng IntelliSense khơng chỉ cho các hàm, biến và các
phương pháp mà còn sử dụng cho các cấu trúc ngôn ngữ như: Truy vấn hoặc vịng điều khiển.
Bên cạnh đó, các trình biên tập mã Visual Studio cũng hỗ trợ cài đặt dấu trang trong mã để có thể
điều hướng một cách nhanh chóng và dễ dàng. Hỗ trợ các điều hướng như: Thu hẹp các khối mã
lệnh, tìm kiếm gia tăng,…
Visual Studio cịn có tính năng biên dịch nền tức là khi mã đang được viết thì phần mềm này
sẽ biên dịch nó trong nền để nhằm cung cấp thơng tin phản hồi về cú pháp cũng như biên dịch lỗi
và được đánh dấu bằng các gạch gợn sóng màu đỏ.

2.2 Trình gỡ lỗi
Visual Studio có một trình gỡ lỗi có tính năng vừa lập trình gỡ lỗi cấp máy và gỡ lỗi cấp mã
nguồn. Tính năng này hoạt động với cả hai mã quản lý giống như ngôn ngữ máy và có thể sử
dụng để gỡ lỗi các ứng dụng được viết bằng các ngôn ngữ được hỗ trợ bởi Visual Studio.

2.3 Thiết kế
Windows Forms Designer
Được sử dụng với mục đích xây dựng GUI sử dụng Windows Forms, được bố trí dùng để xây
dựng các nút điều khiển bên trong hoặc cũng có thể khóa chúng vào bên cạnh mẫu. Điều khiển
trình bày dữ liệu có thể được liên kết với các nguồn dữ liệu như: Cơ sở dữ liệu hoặc truy vấn.
WPF Designer

7


Tính năng này cũng giống như Windows Forms Designer có công dụng hỗ trợ kéo và thả ẩn dụ.
Sử dụng tương tác giữa người và máy tính nhắm mục tiêu vào Windows Presentation
Foundation.
Web designer/development
Visual Studio cũng có một trình soạn thảo và thiết kế website cho phép các trang web được thiết

kế theo tính năng kéo và thể đối tượng.

Chương 3: Quá trình thực hiện
I. Thiết kế giao diện.

8


1. Ý tưởng
Nhóm chọn mơ hình thiết kế giao diện đơn giản, dễ nhìn, phối hợp giao diện từ Paint và
Photoshop. Điều này giúp cho người sử dụng có cái nhìn quen thuộc, khơng bị rối với các chức
năng. Về màu sắc, ban đầu về cơ bản là các màu trắng và xám, kết thúc đồ án, nhóm quyết định
ra thêm 1 bản Dark Theme với tone màu chủ đạo là đen, mang sắc thái ngược hoàn toàn so với
bản gốc.

2. Nội dung giao diện
Giao diện có thể được chia làm 4 phần chính.

9


2.1 Trung tâm xử lý

Trung tâm xử lý là vùng được khoanh tròn, đây sẽ là nơi bức ảnh được xử lý, ở góc trên bên
trái sẽ là tab điều khiển, góc dưới bên trái là độ phóng đại của tấm ảnh, giúp người dùng có thể
phóng to thu nhỏ, hỗ trợ việc xử lý ảnh một cách dễ dàng hơn, ngồi ra cịn có nút Clear ( C ) để
người dùng đưa ảnh về kích thước ban đầu.

10



2.2 Thanh cơng cụ

Thanh cơng cụ sẽ bao gồm tồn bộ các lệnh của chương trình. Được chia làm 7 loại thao tác


Thao tác với File



Chỉnh sửa (Edit)



Cộng cụ hỗ trợ (Tools)



Tầm nhìn (View)



Thao tác với Layer



Chỉnh sửa màu (Color)




Các lệnh filler



Giúp đỡ, liên hệ và thông tin cơ bản (Help)

2.1.1. File

11


Các thao tác với file gồm 6 thao tác chính.


New ( Ctrl+N)
Đây là thao tác cho phép người dùng tạo ra một cửa sổ làm việc mới



Open (Ctrl + O)
Thao tác này cho phép người dùng mở ra 1 tấm ảnh dạng PNG có sẵn trong máy tình của họ



Save (Ctrl+S)
Cho phép người dùng lưu lại bức ảnh sau khi chỉnh sửa



Save as

Tương tự như Save, nhưng người dùng được phép sửa lại tên bức ảnh.



Close (Ctrl + W)
Cho phép người dùng kết thúc chương trình.



Exit
Thốt chương trình

2.1.2 Edit

Các thao tác chỉnh sửa gồm 4 thao tác.
12




Copy (Ctrl + C)
Copy vùng được chọn



Paste (Ctrl+V)
Dán dùng được chọn




Cut (Ctrl+X)
Cắt vùng được chọn



Undo(Ctrl+Z)
Lùi lại thao tác vừa thực hiện

2.1.3 Tools

Thao tác với Tools gồm các thao tác sau:


Transform (T)



Drag (H)



Select (A)
Chọn một vùng hình chữ nhật để thao



Pen (B)
Tạo ra 1 cây bút vẽ theo đường di chuyển của con trỏ




Eraser (E)
Xóa vật thể theo đường di chuyển của con trỏ



Color Picker (P)
Chọn màu mà con trỏ đang trỏ tới bằng cách click



Shape (S)
Vẽ các hình học 2D đơn giản như hình chữ nhật, hình vng, hình trịn, hình elip



Line (L)
Vẽ một đường thẳng nối giữa 2 điểm ấn và nhả chuột
13




Bucket (F)

2.1.4 View

Thao tác View gồm 3 tháo tác chính
 Zoom in (Ctrl + -)
Phóng nhỏ ảnh

 Zoom out (Ctrl + +)
Phóng to ảnh
 Center ( Ctrl + Shift + C)
Đưa ảnh về kích thước ban đầu.

2.1.5 Layer

Thao tác layer gồm 7 thao tác chính


New Layer (Ctrl + Shift + N)
Tạo ra một layer mới



Delete Layer (Ctrl+ Shift+D)
Xóa layer đang chọn



Clear (Ctrl + Shift + Del)
Xóa tồn bộ layer
14




Rename (Ctrl + Shift + R)
Sửa lại tên layer được chọn




Duplicate (Ctrl + Shift + J)
Nhân đôi layer được chọn



Merge ( Ctrl + Shift+K)
Sắp xếp layer



Fill (Ctrl + Shift + F)

2.1.6 Color

Các thao tác chỉnh màu gồm các thao tác sau:


Color Balance



Brightness and Contrast
Chỉnh độ sáng và độ tượng phản



Hue and Saturation
Chỉnh các thông số Hue và Saturation




Invert
Đảo ngược màu sắc



Threshhold
Làm nét



Grayscale
Chuyển ảnh trắng đen

2.1.7 Filter

15


Filter gồm 4 thao tác:


Blur
Làm mờ



Noise

Làm nhiễu



Sharpen



Pixelate

2.1.8 Help

2.3 Bảng chọn

Bảng chọn là bảng chứa các lệnh chính giúp hỗ trợ người dùng sử dụng một cách thuận
tiện hơn
2.3.1. Bảng màu

16


Cho phép người dùng chọn màu theo ý thích bằng cách giữ và rê chuột quanh bảng màu ở
trên.
Ở dưới sẽ hiện kèm theo chỉ số Red, Green và Blue cũng như cường độ của chúng
2.3.2 Bảng lệnh

Bảng lệnh cho phép người dùng thực hiện 1 số thao tác cơ bản như thêm hoặc vẽ đè lên bức
ảnh. Hàng đầu tiên có các thao tác quay, drap hình.Hàng thứ 2 có các thao tác Pen, Erase, Color
Picker,... Ngồi ra thì cịn có 2 thanh để tùy chỉnh kích cỡ cây bút cũng như độ mờ (Opacity) của
nó. Hàng cuối cùng cho phép người dùng vẽ các hình cơ bản như hình chữ nhật, hình elipp,

đường thẳng, ...

2.3 Thanh lịch sử và kiểm soát layer
2.3.1 Thanh lịch sử

17


Lưu lại toàn bộ lịch sử các thao tác người dùng vừa thực hiện, Giúp người dùng có thể quay
lại một cách hợp lý cũng như kiểm soát được chuỗi thao tác của mình một cách dễ dàng hơn.

2.3.2 Thanh Layer

Cho phép người dùng theo dõi và tùy chỉnh với các layer, có đầy đủ thao tác với layer như
thêm, xóa, dịch lên, dịch xuống, nhân đơi layer.

18


II.Thực hiện Code

File code chính gồm 1544 dịng code bao gồm các phần khác nhau, ngồi file chính ra thì
cịn có các file phụ để hỗ trợ cho file chính. Các lệnh được phân thành hai loại và từ đó đưa ra
được hai hướng xử lý khác nhau.

1. Tạo hình form
Phần tạo form là phần đơn giản nhất, chỉ việc sử dụng các toolsbox có sẵn trong thư viện là
đã có thể tạo ra một giao diện cơ bản.
Thanh cơng cụ được xây dựng bằng cách sử dụng 1 menustrip, bảng màu thanh hiển thị màu
tạo bởi các picturebox, sau đó, để dễ sử dụng, nhóm sẽ gộp nó vào một panel riêng, gọi là

ColorPanel.
Tương tự với các lệnh vẽ hình, nhóm cũng sử dụng một menutrip để chứa các lệnh, sau đó
gộp nó vào riêng một panel riêng, gọi ToolPanel
Phần trung tâm xử lý,nhóm sử dụng tabcontrol. Tương tự với các panel lưu lịch sử, panel xử
lý layer.
Vậy là về cơ bản, nhóm đã xây dựng được một giao diện sử dụng cơ bản
Các ToolBox mà nhóm đã sử dụng để xây dựng giao diện:


Menustrip



Combobox



PictureBox



ToolStripButton
19




Toolstripmenuitem




ToolStripButton



Panel



StatusStrip



TabControl

2. Chỉnh sửa ảnh
Nhóm lệnh thứ nhất là nhóm lệnh để chỉnh sửa màu, tức là thay đổi hình ảnh bằng cách thêm
bớt, xóa sửa, tơ màu chứ khơng thực hiện làm thay đổi màu sắc của toàn bức ảnh.
Hướng xử lý của nhóm là sử dụng các event mouse up và mouse down để đánh dấu các điểm
và thực hiện lệnh khi chuột di chuyển (mouse move), sau khi nhả chuột thì đưa ra kết quả cuối
cùng.
Ví dụ như thao tác pick màu, khi người dùng click chuột vào bảng màu, chương trình sẽ
đánh dấu điểm màu đó và đưa ra màn hình, tuy nhiên khi người dùng di chuyển chuột trong
phạm vi thao tác, chương trình vẫn tiếp tục ghi lại vị trí con trỏ và thay đổi màu sắc ngay lập tức,
khi người dùng nhả chuột thì chương trình mới ghi nhận lại kết quả cuối cùng.
Một ví dụ khác, đó là thao tác vẽ hình. Khi người dùng chọn thao tác vẽ hình chữ nhật, và
người dùng ấn chuột, chương trình sẽ ghi nhận điểm bắt đầu, khi chuột di chuyển, sẽ có hình chữ
nhật được vẽ theo, khi nhả chuột, đó sẽ là hình chữ nhật cuối cùng

3. Chỉnh sửa màu

Phần chỉnh màu là phần phức tạp nhất. Vì nó địi hỏi phải sử dùng thuật tốn riêng, do đó,
nhóm đã phải tìm hiểu khá nhiều tài liệu và các mã giả để hoàn thành được các chức năng.
Ban đầu, nhóm chọn cách đơn giản nhất, là thay đổi màu sắc của từng pixel, nhưng sau khi
cài đặt code và kiểm thử chương trình, hình ảnh được xử lý trong thời gian rất lâu. Do đó, nhóm
cần thay đổi thuật tốn, cuối cùng nhóm đã tìm ra phương án xử lý bằng cách nhân hình ảnh này
với một ma trận vector , và tùy vào thơng số ma trận có thể xử lý ảnh theo các hướng khác nhau,
điều này giúp tối ưu hóa tốc độ xử lý hình ảnh.

(Vector chỉnh màu trắng đen (GrayScale))
20


Chương 4: Kết quả đạt được
Đã hoàn thiện được phần mềm, tuy nhiên trong quá trình kiểm thử phần mềm vẫn cịn 1 số
bug. Nhóm đã cố gắng hồn thiện nhất xong khơng tránh khỏi thiếu sót. Dưới đây là các chức
năng mà phần mềm có thể làm.

(Tính năng vẽ hình, tơ màu, chọn màu,...)

21


(Ảnh gốc)

(Color Balance)

(Brightness and Contrast)

22



( Hue and Saturation)

( Ảnh gốc)

23


(Inverst)

( Threshold)

24


×