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,
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 Chương 2: Cơ sở lý thuyết I Github Github ? Tại sử dụng GitHub ? 2.1GitHub cho người thấy khả code thành viên 2.2 GitHub giúp cá nhân cải thiện code 2.3 GitHub môi trường thực tế sau II C# C# ? Đặc trưng C# 2.1 C# Là ngôn ngữ đơn giản 2.2 C# ngôn ngữ hướng đối tượng 2.3 So sánh C# với ngôn ngữ C C++ 2.4 Nền tảng Net III Visual Studio Visual Studio ? Một số tính 2.1 Biên tập mã 2.2 Trình gỡ lỗi 2.3 Thiết kế Chương 3: Quá trình thực I Thiết kế giao diện Ý tưởng Nội dung giao diện 2.1 Trung tâm xử lý 10 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ử kiểm soát layer 17 2.3.1 Thanh lịch sử 17 2.3.2 Thanh Layer 18 II Thực Code 19 Tạo hình form 19 Chỉnh sửa ảnh 20 Chỉnh sửa màu 20 Chương 4: Kết đạt 21 Chương 5: Tài liệu tham khảo 28 Chương 6: Danh sách thành viên 28 Chương 1: Mở đầu Con người sinh sống biển thông tin, giây, phút tiếp xúc với tin tức cách tự giác không tự giác Và xã hội phát triển cách thức người tiếp xúc với tin tức thay đổi theo hướng tích cực Với bước tiến vũ bão thập kỉ cuối kỉ XX, Công nghệ thông tin tạo nên diện mạo cho sống người mở cho nhân loại kỉ ngun - kỉ ngun cơng nghệ thơng tin Có thể khẳng định CNTT giữ vai trò quan trọng phát triển lồi người nói chung phát triển kinh tế, trị, xã hội đất nước Trong phát triển lại có vơ vàn nhánh phát triển nhỏ hơn, mà nhánh lại mang đặc thù vai trò riêng 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, Đó phần mềm chỉnh sửa ảnh phổ thông, dễ dàng sử dụng cho người, mức chuyên sâu hơn, khó sử dụng phần mềm chỉnh sửa ảnh chuyên nghiệp, mà thơng dụng nhất, đứa Adobe, Adobe Photoshop Bằng việc sử dụng giải thuật phức tạp, Photoshop gần làm thứ theo ý bạn muốn, lượng chức đa dạng, phong phú tạo nên thương hiệu photoshop Chính thế, nhóm tụi em định mô lại phần mềm photoshop, giới hạn kiến thức thời gian, nhóm chúng em cố gắng để tạo nhiều chức hoàn thiện sản phẩm cách chu đáo Chương 2: Cơ sở lý thuyết Để thực đồ án này, nhóm em có buổi gặp mặt riêng để phân chia nhiệm vụ xác định khối lượng công viêc, đồng thời vạch chiến lược thực Bảng phân công công việc kèm file Nhận thấy đồ án phức tạp, đòi hỏi thành viên phải code nhiều am hiểu thuật toán liên quan đến chỉnh sửa ảnh, nhóm tụi em định chọn công cụ hỗ trợ sau, I Github Vấn đề làm việc nhóm phải làm việc với nhiều người Hay kể làm việc việc quản lý source code vơ quan trọng Theo nhóm tìm hiểu có 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 có ưu nhược điểm riêng Nhóm tụi em giới thiệu sơ qua Github cách nhóm sử dụng git để làm việc với Github ? GitHub dịch vụ tiếng cung cấp kho lưu trữ mã nguồn Git cho dự án phần mềm Github có đầy đủ tính Git, ngồi cịn bổ sung tính social để developer tương tác với Như vậy, GitHub sẽ: Là công cụ giúp quản lý source code tổ chức theo dạng liệu phân tán Giúp đồng source code team lên server Hỗ trợ thao tác kiểm tra source code trình làm việc (diff, check modifications, show history, merge source, …) Tại sử dụng GitHub ? 2.1 GitHub cho người thấy khả code thành viên Nhìn vào lịch sử hoạt động tài khoản GitHub cho bàn biết nhiều điều: thời gian bắt đầu, project tham gia Điều cho phép quản lý hay nhóm trưởng theo dõi đánh giá code thành viên, qua đưa lực thật đưa nhiệm vụ, deadlines phù hợp, đồng thời dễ dàng quản lý project GitHub ghi lại tồn lịch sử commit 2.2 GitHub giúp cá nhân cải thiện code GitHub công cụ tuyệt vời giúp thành viên nhóm quan sát so sánh code với Nó cho phép thành viên đọc code thành viên khác so sánh lần commit, điều giúp thành viên phải tự thúc đẩy thân code để hoàn thành tiến độ dealine Và thành viên học hỏi kinh nghiệm kĩ thuật xử lý thành viên khác thông qua lịch sử commit họ, môi trường tuyệt vời để cá nhân tự phát triển khả thân 2.3 GitHub môi trường thực tế sau Hầu hết công ty sử dụng GitHub, viêc làm quen với GitHub học đại học điều vơ cần thiết, khơng thế, giúp lưu lại đồ án, sản phẩm, dự án hoàn thảnh, HR vấn, họ dễ dàng xem projects mà hoàn thành từ đưa vào vị trí thích hợp II.C# C# ngơn ngữ chọn để nghiên cứu mơn Lập Trình Trực Quan, bên cạnh cịn có WPS, nhiên để dễ dàng nghiên cứu học tập nhóm chọn C# để code Dưới số thông tin ngôn ngữ C# C# ? C# ngơn ngữ lập trình hướng đối tượng phát triển Microsoft, phần khởi đầu cho kế hoạch NET họ Microsoft phát triển C# dựa C++ Java C# miêu tả ngơn ngữ có cân C++, Visual Basic, Delphi Java C# thiết kế chủ yếu Anders Hejlsberg kiến trúc sư phần mềm tiếng với sản phẩm Turbo Pascal, Delphi, J++, WFC Phiên gần 8.0, phát hành vào năm 2019 với Visual Studio 2019 phiên 16.3 Đặc trưng C# 2.1 C# Là ngôn ngữ đơn giản Như ta biết ngơn ngữ C# dựng tảng C++ Java nên ngôn ngữ C# đơn giản Nếu thân thiện với C C++ hoậc chí Java, thấy C# giống diện mạo, cú pháp, biểu thức, toán tử chức khác lấy trực tiếp từ ngôn ngữ C C++, cải tiến để làm cho ngơn ngữ đơn giản Một vài cải tiến loại bỏ dư thừa, thêm vào cú pháp thay đổi 2.2 C# ngôn ngữ 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) phương pháp lập trình có tính chất Đó tính trừu tượng (abstraction), tính đóng gói (encapsulation), tính đa hình (polymorphism) tính kế thừa (inheritance) C# hỗ trợ cho tất đặc tính 2.3 So sánh C# với ngôn ngữ C 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 Quản lý nhớ thủ Quản lý nhớ thủ cơng cơng Dung lượng 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 loại tảng Cho phép code gần tất ứng dụng, cú pháp chuẩn Tương đương với C Có thể code cho loại tảng Cho phép code gần tất ứ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 CLR, nhị phân lớ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) tảng (Framework) cho phép lập trình viên sử dụng để phát triển ứng dụng, website Nền tảng phát triển Microsoft chạy hệ điều hành Microsoft Window Chú ý NET khơng phải ngơn ngữ lập trình, mà tảng cho phép ngơn ngữ lập trình khác C# sử dụng để tạo nên website, ứng dụng Internet Cấu tạo NET dòng code viết sẵn lập trình viên Microsoft, lập trình viên khác sử dụng tảng để phát triển ứng dụng dịch vụ web khác cách nhanh chóng III Visual Studio Visual Studio ? Visual studio công cụ hỗ trợ lập trình thiết kế website tiếng Mcrosoft chưa có phần mềm thay Visual Studio viết ngơn ngữ C# VB+ Đây ngơn ngữ lập trình giúp người dùng lập trình hệ thống dễ dàng nhanh chóng thơng qua Visual Studio Visual Studio phần mềm lập trình hệ thống sản xuất trực tiếp từ Microsoft Từ đời đến nay, Visual Studio có nhiều phiên sử dụng khác Điều đó, giúp cho người dùng lựa chọn phiên tương thích với dịng máy cấu hình sử dụng phù hợp Bên cạnh đó, Visual Studio cịn cho phép người dùng tự chọn lựa giao diện cho máy tùy thuộc vào nhu cầu sử dụng Một số tính 2.1 Biên tập mã Giống IDE khác, Visual Studio gồm có trình soạn thảo mã hỗ trợ tơ sáng cú pháp hồn thiện mả sử dụng IntelliSense không cho hàm, biến phương pháp mà sử dụng cho cấu trúc ngơn ngữ như: Truy vấn vịng điều khiển Bên cạnh đó, trình biên tập mã Visual Studio hỗ trợ cài đặt dấu trang mã để điều hướng cách nhanh chóng dễ dàng Hỗ trợ điều hướng như: Thu hẹp khối mã lệnh, tìm kiếm gia tăng,… Visual Studio cịn có tính biên dịch tức mã viết phần mềm biên dịch để nhằm cung cấp thơng tin phản hồi cú pháp biên dịch lỗi đánh dấu gạch gợn sóng màu đỏ 2.2 Trình gỡ lỗi Visual Studio có trình gỡ lỗi có tính vừa lập trình gỡ lỗi cấp máy gỡ lỗi cấp mã nguồn Tính hoạt động với hai mã quản lý giống ngơn ngữ máy sử dụng để gỡ lỗi ứng dụng viết ngôn ngữ hỗ trợ 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, bố trí dùng để xây dựng nút điều khiển bên khóa chúng vào bên cạnh mẫu Điều khiển trình bày liệu liên kết với nguồn liệu như: Cơ sở liệu truy vấn WPF Designer Tính giống Windows Forms Designer có cơng dụng hỗ trợ kéo thả ẩn dụ Sử dụng tương tác người máy tính nhắm mục tiêu vào Windows Presentation Foundation Web designer/development Visual Studio có trình soạn thảo thiết kế website cho phép trang web thiết kế theo tính kéo thể đối tượng Chương 3: Quá trình thực I Thiết kế giao diện Ý 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 Photoshop Điều giúp cho người sử dụng có nhìn quen thuộc, khơng bị rối với chức Về màu sắc, ban đầu màu trắng xám, kết thúc đồ án, nhóm định thêm Dark Theme với tone màu chủ đạo đen, mang sắc thái ngược hoàn toàn so với gốc Nội dung giao diện Giao diện chia làm phần Bucket (F) 2.1.4 View Thao tác View gồm tháo tác Zoom in (Ctrl + -) Phóng nhỏ ảnh Zoom out (Ctrl + +) Phóng to ảnh Center ( Ctrl + Shift + C) Đưa ảnh kích thước ban đầu 2.1.5 Layer Thao tác layer gồm thao tác New Layer (Ctrl + Shift + N) Tạo layer Delete Layer (Ctrl+ Shift+D) Xóa layer chọn Clear (Ctrl + Shift + Del) Xóa tồn layer 14 Rename (Ctrl + Shift + R) Sửa lại tên layer chọn Duplicate (Ctrl + Shift + J) Nhân đôi layer 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 thao tác sau: Color Balance Brightness and Contrast Chỉnh độ sáng độ tượng phản Hue and Saturation Chỉnh thông số Hue 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 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 bảng chứa lệnh giúp hỗ trợ người dùng sử dụng cách thuận tiện 2.3.1 Bảng màu 16 Cho phép người dùng chọn màu theo ý thích cách giữ rê chuột quanh bảng màu Ở kèm theo số Red, Green Blue cường độ chúng 2.3.2 Bảng lệnh Bảng lệnh cho phép người dùng thực số thao tác thêm vẽ đè lên ảnh Hàng có thao tác quay, drap hình.Hàng thứ có thao tác Pen, Erase, Color Picker, Ngồi cịn có để tùy chỉnh kích cỡ bút độ mờ (Opacity) Hàng cuối cho phép người dùng vẽ hình chữ nhật, hình elipp, đường thẳng, 2.3 Thanh lịch sử kiểm soát layer 2.3.1 Thanh lịch sử 17 Lưu lại toàn lịch sử thao tác người dùng vừa thực hiện, Giúp người dùng quay lại cách hợp lý kiểm soát chuỗi thao tác cách dễ dàng 2.3.2 Thanh Layer Cho phép người dùng theo dõi tùy chỉnh với layer, có đầy đủ thao tác với layer thêm, xóa, dịch lên, dịch xuống, nhân đơi layer 18 II.Thực Code File code gồm 1544 dịng code bao gồm phần khác nhau, ngồi file cịn có file phụ để hỗ trợ cho file Các lệnh phân thành hai loại từ đưa hai hướng xử lý khác Tạo hình form Phần tạo form phần đơn giản nhất, việc sử dụng toolsbox có sẵn thư viện tạo giao diện Thanh công cụ xây dựng cách sử dụng menustrip, bảng màu hiển thị màu tạo picturebox, sau đó, để dễ sử dụng, nhóm gộp vào panel riêng, gọi ColorPanel Tương tự với lệnh vẽ hình, nhóm sử dụng menutrip để chứa lệnh, sau gộp vào riêng panel riêng, gọi ToolPanel Phần trung tâm xử lý,nhóm sử dụng tabcontrol Tương tự với panel lưu lịch sử, panel xử lý layer Vậy bản, nhóm xây dựng giao diện sử dụng 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 Chỉnh sửa ảnh Nhóm lệnh thứ nhóm lệnh để chỉnh sửa màu, tức thay đổi hình ảnh cách thêm bớt, xóa sửa, tơ màu không thực làm thay đổi màu sắc tồn ảnh Hướng xử lý nhóm sử dụng event mouse up mouse down để đánh dấu điểm thực lệnh chuột di chuyển (mouse move), sau nhả chuột đưa kết cuối Ví dụ thao tác pick màu, người dùng click chuột vào bảng màu, chương trình đánh dấu điểm màu đưa hình, nhiên người dùng di chuyển chuột phạm vi thao tác, chương trình tiếp tục ghi lại vị trí trỏ thay đổi màu sắc lập tức, người dùng nhả chuột chương trình ghi nhận lại kết cuối Một ví dụ khác, thao tác vẽ hình Khi người dùng chọn thao tác vẽ hình chữ nhật, người dùng ấn chuột, chương trình ghi nhận điểm bắt đầu, chuột di chuyển, có hình chữ nhật vẽ theo, nhả chuột, hình chữ nhật cuối Chỉnh sửa màu Phần chỉnh màu phần phức tạp Vì địi hỏi phải sử dùng thuật tốn riêng, đó, nhóm phải tìm hiểu nhiều tài liệu mã giả để hoàn thành chức Ban đầu, nhóm chọn cách đơn giản nhất, thay đổi màu sắc pixel, sau cài đặt code kiểm thử chương trình, hình ảnh xử lý thời gian lâu Do đó, nhóm cần thay đổi thuật tốn, cuối nhóm tìm phương án xử lý cách nhân hình ảnh với ma trận vector , tùy vào thơng số ma trận xử lý ảnh theo hướng khác nhau, điều 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 đạt Đã hồn thiện phần mềm, nhiên q trình kiểm thử phần mềm cịn số bug Nhóm cố gắng hồn thiện xong khơng tránh khỏi thiếu sót Dưới chức mà phần mềm làm (Tính 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 ( Gray Scale) (Flip) 25 (Blur) (Noise) 26 (Pixel) (Copy, Cut, Paste) 27 Chương 5: Tài liệu tham khảo Wikipedia GitHub Youtube Chương 6: Danh sách thành viên Nhóm trưởng: Phạm Hồng Nhật Trường | MSSV:18521570 Thành viên: Huỳnh Thế Anh | MSSV: 18520448 Thành viên: Lưu Trung Nguyên | MSSV: 18521158 28 ... 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, Đó phần mềm chỉnh. .. 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... StatusStrip TabControl Chỉnh sửa ảnh Nhóm lệnh thứ nhóm lệnh để chỉnh sửa màu, tức thay đổi hình ảnh cách thêm bớt, xóa sửa, tơ màu khơng thực làm thay đổi màu sắc toàn ảnh Hướng xử lý nhóm sử