Trang chủ > Lập trình > Lập trình C# - Xử lý ảnh - Chương trình tạo Watermark đơn giản

Lập trình C# - Xử lý ảnh - Chương trình tạo Watermark đơn giản


11-05-2012, 16:25. Người viết: hungtuan102
Lập trình C# - Xử lý ảnh - Chương trình tạo Watermark đơn giản

Sử dụng C# để viết một chương trình tạo Watermark (đóng dấu ảnh) đơn giản.
Một chương trình xử lý ảnh viết thời sinh viên, xem lại thấy gà quá

Chương trình minh họa tre6b Visual Studio 2005.

 

Photobucket

Tạo một project mới tên Watermark

 

Photobucket

Trên form chính (Form1.cs), thêm các components sau:

  1. Menu Strip: menuStrip1 chứa File > Open | Save | Exit
  2. Textbox: txtText dùng để chứa Watermark (chữ ký đóng dấu)
  3. ComboBox: cbFont chứa tên font
  4. Textbox: txtFontSize chứa kích thước font
  5. ComboBox: cbColor chứa tên màu chữ
  6. ComboBox: cbOptical chứa độ trong suốt của chữ (trong hình để nhầm là textbox)
  7. ComboBox: cbPosition chứa vị trí chữ (Trên, Giữa, Dưới)
  8. Button: btnOK thực hiện đóng dấu

 

Photobucket

Trong phần properties của Form1, thiết lập IsMdiContainer = True. Ta sẽ dùng Form1 làm nền, hình ảnh sẽ load vào một form con (FormImg.cs sẽ tạo sau), form con này bị chứa trong Form1 nhờ thuộc tính IsMdiContainer

 

Photobucket

Bổ sung thêm 2 components cho Form1 là:

  1. Open File Dialog
  2. Save File Dialog

 

Photobucket

Viết hàm cho sự kiện File > Open

 

Photobucket

Chú ý:

  1. bổ sung thư viện System.Drawing
  2. biến public pathImage dùng để lưu đường dẫn của hỉnh ảnh lúc mở file và lúc lưu file.
  3. Ta tạm viết phần comment // Do later , sau khi tạo FormImg sẽ viết tiếp

 

Photobucket

 

Viết hàm cho sự kiện File > Save

 

Photobucket

Tượng tự như trên, tạm viết tới commnet Do later.

 

Photobucket

Sự kiện File > Exit

 

Photobucket

Đơn giản.

 

Photobucket

Thêm tên Font

 

Photobucket

Thêm tên các font chữ tùy thích

 

Photobucket

Thêm màu sắc, ở đây chỉ ví dụ 3 màu

 

Photobucket

Độ trong suốt của chữ: hiện theo tỉ lệ %

 

Photobucket

Vị trí chữ sẽ đóng dấu trên hình, chỉ ví dụ 3 vị trí

 

Vì đây là một ví dụ minh họa đơn giản nên ta chỉ sử dụng các textbox, combobox để chứa các thuộc tính font,color,... người lập trình có thể cải tiến bằng cách tìm hiểu thêm cách dùng các components của Windows.

 

Photobucket

Tạo một form mới tên là FormImg, form này dùng để chứ hình ảnh khi ta mở/lưu/xử lý file hình.

 

Photobucket

Thêm biến Bitmap để chứa hình ảnh

 

Photobucket

Viết sự kiện Paint cho FormImg

 

Photobucket

Nội dung sự kiện Paint

 

Photobucket

Viết tiếp sự kiện Resize cho FormImg

 

Photobucket

Hàm này dùng để xóa buffer khi di chuyển hình ảnh trên FormImg

 

Photobucket

Quay lại Form1.cs (form chính)

Trong sự kiện File > Open bổ sung vào phần comment Do later sự kiện load hình ảnh từ file vào FormImg

Bây giờ nếu chạy thử chương trình, ta có thể mở hình ảnh lên được.

 

Photobucket

Tiếp tục bổ sung sự kiện lưu hình ảnh từ FormImg thành file

Giờ đây, ta có thể mở ảnh và lưu ảnh với 2 chức năng trên. Trong bài viết này chỉ minh họa việc tạo watermark, ta có thể viết nhiều cách xử lý ảnh khác nhau (tạo bóng nước, tổ chức đồ,...) dựa trên khung quản lý file này.

 

Photobucket

Cuối cùng ta viết sự kiện click chuột cho button OK.

Trong sự kiện trên, ta gọi hàm waterMark(bmp, txtText.Text, font, size, color, wmOptical, wmPositon)

Hàm waterMark(Bitmap bmPhoto, string txtWM, string wmFont, int wmSize, int wmMau, int wmTran, int wmViTri) này là hàm dùng đễ tạo watermark cho hình ảnh

 

down


http://www.mediafire.com/?bx4d760pi17a8zk


Quay lại