1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

29 36 2

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 29
Dung lượng 2,59 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Bằng việc ứng dụng cơng nghệ tiên tiến, hàng loạt đứa công nghệ đời để phục vụ cho người từ việc cao vệ tinh, robot, thám hiểm mặt trăng, nghiên cứu khu vực nguy hiểm công việc ngày phần mềm quản lý, thiết bị báo cháy, game hay mạng xã hội Là sinh viên trường đại học công nghệ thông tin, kĩ sư phần mềm tương lai, chúng em có trách nhiệm kế thừa tinh hoa cơng nghệ phát triển, ứng dụng để tạo sản phẩm thực tế, phục vụ nhu cầu cần thiết người Qua khảo sát nghiên cứu thực tế, nhu cầu việc chụp ảnh, ghi lại khoảng khắc, tạo đoạn phim chất lượng, màu sắc đẹp, độ phân giải cao Minh chứng rõ ràng gã khổng lồ Apple liên tục trao dồi, phát triển camera chụp ảnh để tạo ảnh đẹp nhất, chân thực Bên cạnh thiết bị chụp ảnh tốt, thiếu phần mềm chỉnh sửa ảnh chất lượng, cách tay đắc lực cho nhiếp ảnh gia hay kể bạn trẻ thích chụp ảnh Nó gần xương sống cho ngành điện ảnh Theo khảo sát, trung bình điện thoại có 1-2 app chỉnh sửa ảnh số 2-3 bạn nữ Có hàng chục phần mềm chỉnh sửa ảnh tiếng mà bạn bắt gặp thương hiệu, logo qua ảnh đăng tải mạng xã hội ngày Như Ulike, B612, Snapseed, Picsart,

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

Trang 2

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

Trang 3

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

Trang 4

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 loà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

Trang 5

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, ngoà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

Trang 6

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 để hoà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

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

Trang 7

(encapsulation), tính đa hình (polymorphism) và tính kế thừa (inheritance) C# hỗ trợ cho chúng

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

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

Trang 8

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à hoà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

Trang 9

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

Trang 10

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

Trang 11

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, ngoài ra còn có nút Clear ( C ) để người dùng đưa ảnh về kích thước ban đầu

Trang 12

2.2 Thanh công cụ

Thanh công cụ sẽ bao gồm toà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

Trang 13

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

Trang 15

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

Trang 16

 Hue and Saturation

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

Trang 18

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, Ngoà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ử

Trang 19

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

Trang 20

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, ngoà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

Trang 21

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

Ngày đăng: 15/12/2021, 16:56

TỪ KHÓA LIÊN QUAN

w