Coder Social home page Coder Social logo

paint-win32-dll's Introduction

Paint Win32 Update DLL

---------------- INFO ----------------

  1. Name: Trần Quốc Bảo
  2. Emal: [email protected]
  3. Version Visual Studio: Community 2017
  4. Release: Bản release được build ở dạng release.

-------------- HAVE DONE --------------

  1. Giao diện chương trình. (Menu, Status Bar, Ribbon)
  2. Xử lý GDI+, Open File và Save File.
  3. Bọc tất cả các đối tượng vẽ vào các lớp model.
  4. Sử dụng đa xạ (polymorphism) để cài đặt việc quản lý các đối tượng và vẽ hình.
  5. Sử dụng mẫu thiết kế Prototypes để tạo ra hàng mẫu nhằm vẽ ở chế độ xem trước (preview).
  6. Sử dụng mẫu thiết kế Factory để tạo mới đối tượng.
  7. Cụ thể:

#GDI+

  1. Vẽ được các hình cơ bản: Line, Rectangle, Ellipse.
  2. Xử lý nhấn Shift để vẽ Straight Line, Square, Circle.
  3. Có khả năng Undo, Redo.
  4. Khử răng cưa. Using an 8 X 4 box filter (Anti Aliasing - AA)

#Open File và Save File

  1. Mở và lưu được các định dạng binary (.objpaint), bitmap (.bmp), png (.png).
  2. Ở định dạng binary có khả năng Undo, Redo - load lại phiên làm việc cũ.
  3. Ở định dạng bitmap, png chỉ có khả năng load hình và vẽ đè lên.
  4. Bitmap, PNG được xử lý bằng GDI và GDI+.

#GUI

  1. Sử dụng các phím tắt để thao tác nhanh. (Bảng phím tắt ở dưới)
  2. Status bar, hiển thị vị trí con trỏ chuột trên nền vẽ, hiển thị kích thước nền vẽ, định dạng hình đang vẽ (Line - Straight line, Rectangle - Square, Ellipse - Circle)

Solve Issues

  1. Sử dụng BitBlt để giảm giật hình khi vẽ lại. Hiện tại thì tỉ lệ giật rất thấp. (hầu như là không có) Nhưng load PNG lên vẫn có lúc giật. Sử dụng kỹ thuật Double-buffing - các biến sử dụng thường xuyên được đặt static để xử lý nhanh.

--------- CHANGE LOG ver 3.0 ----------

  1. Thay đổi hoàn toàn sang GDI+.
  2. Thêm các tính năng như chọn màu vẽ, kiểu nét vẽ, độ to của nét vẽ.
  3. Thêm tính năng đổ màu (Fill Color).
  4. Thêm giao diện Ribbon. Giúp giao diện nhìn đẹp, dễ thao tác và sử dụng.
  5. Thay đổi một số kỹ thuật nên không còn giật lag hình. (0%)
  6. Sửa đổi cải tiến Undo-Redo.
  7. Khử răng cưa. Using an 8 X 4 box filter (Anti Aliasing - AA)

--------- CHANGE LOG ver 3.1 ----------

  1. Sử dụng DLL.
  2. Đưa các lớp vẽ vào DLL.

-------------- MAIN FLOW --------------

  1. Khởi chạy chương trình, mặc định vẽ line, tùy chọn các hình vẽ cơ bản ở menu.
  2. Tùy chỉnh màu, nét vẽ theo sở thích, ý muốn.
  3. Vẽ trên nền chương trình.
  4. Nhấn shift vẽ các đối tượng đặc biệt (đường thẳng, hình vuông, hình tròn).
  5. Có thể Save file những thứ đã vẽ lại dưới các định dạng binary (.objpaint), bitmap (.bmp), png (.png).
  6. Có thể Open file để tiếp tục vẽ.

---------- ADDITIONAL FLOW ------------

  1. Khi thoát chương trình, nếu đã vẽ mà chưa lưu sẽ hỏi có muốn lưu hay không?
  2. Khi mở file trong khi đang vẽ thì hỏi có muốn lưu hay không?

------ GIT ORIGINAL (BITBUCKET) -------

ver 3.1: https://[email protected]/1512029/paint-dll.git

------------- LINK YOUTUBE ------------

  1. ver 1.0: https://youtu.be/Jk_jeQDzUdc
  2. ver 2.0: https://youtu.be/Gz5Pj7eGp3Q
  3. ver 3.0: https://youtu.be/gONk4k_3V6E
  4. ver 3.1: https://youtu.be/jj_jt7MISjA

paint-win32-dll's People

Contributors

tqbdev avatar

Stargazers

 avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.