Code một số thao tác đơn giản với xử lí hình ảnh: tăng độ sáng, độ tương phản, đổ màu,...



thuvienwinform - C# hỗ trợ chúng ta thư viện System.Drawing. Dựa vào đó chúng ta có thể thực hiện một số thao tác cơ bản với hình ảnh như thiết lập độ sáng, độ tương phản, xoay hình ảnh, hay tạo ảnh đen trắng,...Hôm nay mình xin được giới thiệu một số thao tác xử lí hình ảnh đơn giản thông qua lớp Bitmap trong System.Drawing


1. RGB
- Có thể hiểu nó là một bộ 3 số (R, G, B) nằm trong đoạn từ 0 -> 255. Mỗi số đại diện cho màu đỏ (Red - R), Xanh là cây (Green - G), Xanh lam (Blue). Bất kì màu nào cũng có thể được biểu diễn bằng bộ ba số này!
VD:
\
Màu đen: (0, 0, 0)
Màu đỏ: (255, 0, 0)
...
- Với hình ảnh (Image) nó được chia ra thành các pixel (điểm ảnh), mỗi pixel là một bộ ba số theo mô hình RGB này. Số pixcel = (chiều rộng)x(chiều cao).
- Trong C# để xử lí với các pixel này ta sử dụng lớp Bitmap trong System.Drawing (using System.Drawing)
- Cách làm chính là duyệt từng pixel và thực hiện các thao tác mong muốn trên các pixel đó để thu được bức ảnh mong muốn

2. Một số hàm, biến cơ bản
- Khai báo 1 Bitmap:
Bitmap bitmap = new Bitmap(anh);//anh là kiểu Image
Bitmap bitmap = new Bitmap(chieurong, chieucao);//chieucao, chieurong là kích thước của bitmap này
VD
Bitmap bitmap = new Bitmap(200, 200);//ảnh có kích thước 200x200

- Color:
Color c;//Bản ghi color. Khi đó bộ ba số RGB sẽ là: c.R, c.G, c.B
Color.FromArgb(r, g, b);//Lấy màu từ bộ ba số RBG
VD: màu đen
Color.FromArgb(0, 0, 0);//Màu đen
Color.Black;//Màu đen
Color.FromName("Black");//Màu đen

- Lấy màu của 1 pixel:
Color c;
c = bitmap.GetPixel(cot, hang);//cot, hang là tọa độ của pixel cần lấy màu

- Tô màu cho 1 pixel:
 bitmap.SetPixel(cot, hang, Color.FromArgb(r, g, b));//r, g, b là chỉ số RGB

câcsc
3. Thao tác cơ bản:
3.1. Chuyển ảnh về đen trắng (GrayScale):

GrayScale

- Để chuyển một ảnh về đen trắng ta chuyển  chỉ số từng pixel theo công thức: .299 * c.R + .587 * c.G + .114 * c.B

public Bitmap DenTrang(Image anh)
{
    Bitmap kq = new Bitmap(anh.Width, anh.Height);
    Bitmap anhtam = new Bitmap(anh);
    Color c;
    Byte rgb;
    for (int cot = 0; cot < anhtam.Width; cot++)
        for (int hang = 0; hang < anhtam.Height; hang++)
        {
            c = anhtam.GetPixel(cot, hang);
            rgb = (byte)(.299 * c.R + .587 * c.G + .114 * c.B);
            kq.SetPixel(cot, hang, Color.FromArgb(rgb, rgb, rgb));
        }
    return kq;
}


3.2. Chuyển ảnh về âm bản (Invert):

Invert

- Để chuyển ảnh về âm bản ta lấy 255 trừ đi từng chỉ số (làm màu từng pixel ngược lại)



public Bitmap AmBan(Image anh)
{
    Bitmap kq = new Bitmap(anh.Width, anh.Height);
    Bitmap anhtam = new Bitmap(anh);
    Color c;
    for (int cot = 0; cot < anhtam.Width; cot++)
        for (int hang = 0; hang < anhtam.Height; hang++)
        {
            c = anhtam.GetPixel(cot, hang);
            kq.SetPixel(cot, hang, Color.FromArgb(255 - c.R, 255 -  c.G, 255 -  c.B));
        }

    return kq;
}


3.4. Lọc màu (Filter):
Green Filter


- Đề lọc màu (cụ thể là theo 3 màu chính đỏ, xanh lá cây, xanh lam)
+ Màu đỏ: ta giữ nguyên màu đỏ và đảo ngược 2 màu kia (lấy 255 trù đi chỉ số G và B)
+ Tương tự với xanh và xanh lam

public Bitmap ChenMau(Image anh, int mau)
{
    //1 = do; 2 = xanh Green); 3 = xanh (blue)
    Bitmap kq = new Bitmap(anh.Width, anh.Height);
    Bitmap anhtam = new Bitmap(anh);
    Color c;
    int g = 0, r = 0 , b = 0;
    for (int cot = 0; cot < anhtam.Width; cot++)
        for (int hang = 0; hang < anhtam.Height; hang++)
        {
            c = anhtam.GetPixel(cot, hang);
            switch (mau)
            {
                case 1: r = c.R; g = c.G - 255; b = c.B - 255; break;
                case 2: r = c.R - 255; g = c.G; b = c.B - 255; break;
                case 3: r = c.R - 255; g = c.G - 255; b = c.B; break;
            }
            r = Math.Max(r, 0);
            b = Math.Max(b, 0);
            g = Math.Max(g, 0);
            kq.SetPixel(cot, hang, Color.FromArgb(r,g,b));
        }

    return kq;
}



3.5. Ghép 2 hình:
- Đề ghép 2 hình thì ta khai báo một Bitmap có chiều rộng bằng chiều rộng 1 ảnh và chiều cao bằng tổng chiều cao 2 ảnh.
- Sau đó setpixel từng pixel cho bitmap này.
Ngoài ra còn có chỉnh độ sáng (Brightness), chỉnh độ tương phản (Contrast),...các bạn có thể xem thêm
trong code.



4/06/2014
Đăng bởi :
Nhãn :

[TFS] Khi đã vào guồng


thuvienwinform - 1 tuần là không đủ giới thiệu được hết các chức năng của TFS cũng như nổi trội của nó! Đó mới chỉ là những bước đầu tiên trong việc sử dụng TFS đề phát triển phần mềm. Nhưng mình nghĩ rằng nó đã đủ cho một nhóm mới làm quen với TFS. Giải quyết những câu hỏi ban đầu khi mới tiếp xúc với TFS cũng như scrum. Và đó cũng chỉ là những hiểu biết của mình về nó (2 tuần sử dụng), có thể mình chưa hiểu hết về nó, vì vậy rất mong các bạn đóng ghóp, chia sẻ kinh nghiệm trong sử dụng, quản lí TFS để các nhóm phát triển chúng ta làm việc hiệu quả hơn, có những sản phẩm tốt, nhanh hơn! Đó là mong muốn lớn nhất của mình. Vì hiện nay các nhóm thường không public các công nghệ cũng như quy trình làm việc của mình! Nhưng mình nghĩ là cái đó nên chia sẻ để các nhóm cùng học hỏi lẫn nhau, cùng nhau phát triển.

Lúc đầu mình không hề biết đến TFS là cái gì? Rất ít bài viết tiếng việt nói về nó (có thể là có quá dễ hoặc là các nhóm không muốn chia sẻ). Và mọi công việc trong nhóm đều thực hiện trên doc, excel, mail. Vì vậy, dù mới chỉ dùng được 2 tuần nhưng mình rất nóng lòng muốn chia sẻ nó đến các nhóm phát triển phần mềm để chúng ta cùng sử dụng những công nghệ phát triển nhất, với mục đích cuối cùng là hiệu suất công việc!

Những bài viết mình ít tham khảo (Vì toàn là nguồn tiếng anh) nên có nhiều sai sót mong các bạn đọc đóng ghóp cho nó hoàn thiện hơn nữa. Những phần như giao công việc, tạo các product log, back log...mình sẽ không hướng dẫn vì khi đã thao tác với TFS thì nó sẽ tự đến với bạn một cách tự nhiên, không nên áp đặt theo cách của mình!

Mình rất mong là có một cộng đồng TFS việt để cùng nhau chia sẻ cách làm việc của nó cũng như là nguồn tài liệu cho những người mới, là nơi giao lưu cũng như chia sẻ kinh nghiệm về TFS.

[TFS] Phân quyền. Nhiệm vụ quan trọng

thuvienwinform - Có thành viên chỉ được xem mục work Item, có thành viên được xem hết các mục. Hoặc có thành viên được phép tạo build, project,...Đó là công việc phân quyền

- Việc phân quyền trong TFS rất tỉ mỉ, có thể chỉnh cho cả nhóm, hoặc từng cá nhân!
- Phân quyền là do Admin (master hoặc product owner) thực hiện
Phân quyền chung:



Phân quyên từng project


v..v phần này rất nhiều nhưng rất dễ hiểu, các bạn có thể tự vọc nha :)

[TFS] Backup, công việc không thể thiếu

thuvienwinform - Những sự cố là không thế tránh khỏi như virus, hỏng mạng, cài lại hệ điều hành, đổi máy server khác,...đều làm chúng ta mất dữ liệu. Để khắc phục vấn để này ta phải backup TFS thường xuyên. Thật may là nó đã có sẵn, chúng ta chỉ việc cài và quyên nó đi :D

Mở TFS Administration Console lên


Chú ý: Network Backup path phải là folder share (Full quyền cho EveryOne)


Sau đó chỉ việc next và configure là xong

[TFS] Thiết lập email thông báo (Alert) cho TFS bằng Gmail hoặc Live mail. Giúp cập nhật công việc kịp thời

Email được gửi đến khi có check-in

thuvienwinform - Chẳng nhẽ bật máy lên là phải vào visual luôn thì mới thấy công việc được giao? Không cần, chỉ cẩn vào mail là có thể biết được những lần check-in, sửa code,...Trong bài này mình xin được hướng dẫn tạo email cảnh báo đến các tài khoản khi ai đó check-in, tạo build,...

Chú ý:
- Với nhóm nhỏ khoảng 5, 6 thành viên thì có thể dùng Gmail
- Với nhóm nhiều thành viên thì Gmail sẽ chặn thư (lí do là spam). Còn đối với live mail thì mình thấy vẫn ổn
- Việc gửi thông báo này sử dụng smtp server vì vậy những máy cài winserver có thể tự tạo cho mình 1 smtp server riêng được (nếu có máy server riêng mình sẽ hướng dẫn chi tiết phần này :) )

Để gửi được thư, trước hết phải thiết lập thông báo (Alert) trên máy cài TFS sau đó thiết lập trên từng tài khoản (do từng cá nhân thực hiện)

A. Cài đặt trong máy cài TFS
I. Sử dụng Gmail: https://mail.google.com/
1. Tạo tài khoản Gmail (có rùi thì đổi lại mật khẩu cho mạnh)
Yêu cầu: mật khẩu phải đủ mạnh (chữ hoa, thường, số, kí tự đặc biệt) thì mới được chấp nhận

2. Bật POP (POP là gì thì có thể Google nha)
- Vào hòm thư -> cài đặt

- Chọn tab "chuyển tiếp và POP/MAP


3. Cài đặt trong Team Foundation Adminstration Console




II. Sử dụng live mail
1. Tạo tài khoản: https://mail.live.com/ (có rồi thì đổi lại mật khẩu cho mạnh)
Yêu cầu: Yêu cầu: mật khẩu phải đủ mạnh (chữ hoa, thường, số, kí tự đặc biệt) thì mới được chấp nhận

2. Cài đặt trong Team Foundation Adminstration Console


B. Cài đặt hòm thư của từng tài khoản

- Chọn project -> ấn vào tên của mình -> My Alerts:

- Thêm email và khi nào gửi email

- Ngoài ra có thể chọn Advance Alets Managerment Page để chỉnh nội dung mail (phần này tự vọc nhé)

Ok vậy là đã hoàn thành Alert cho TFS!


[TFS] Source Control Explorer và việc quản lí code

thuvienwinform - Source Control Explorer trong VS chính là công cụ để quản lí code khi đã được up lên TFS. Thông qua nó ta có thể thực hiên việc check-in sau khi chỉnh sửa, check-out  lấy code về, xem các version, thành viên nào up lên, so sánh các file, nội dung được chỉnh sửa bởi ai....

A. Source Control Explorer



B. Đưa code lên server
Sau khi tạo project xong ta có thể upcode lên như sau

b1: map
map là để đưa code trên server về một thư mục tên máy của mình




b2: Nếu đã code code rùi thì chỉ việc Get Last Version về là được. Còn chưa có thì sẽ đưa code lên
- Get Last version


- Up code lên.
Để thực hiện việc này ta có nhiều cách.
Cách 1: kéo thả folder chứa code vào Source Explorer

Cách 2: chuột phải vào solution đang mở -> Add solution to...



Sau đó check-in
hoặc


Các version


[TFS] Kết nối TFS với Visual Studio và tạo project mới

thuvienwinform - Hôm nay mình xin hướng dẫn cách kết nối Visual Studio (VS) vào một Team Foundation Server đã được tạo ra

Địa chỉ server: Ohia-Pc:8080/tfs

A. Kết nối đến TFS

OK, bật VS lên

Chọn Team -> Connect to a... -> connect

Ấn nút server -> Add -> điền địa chỉ server vào -> OK




Ấn Close



Chọn server -> ấn connect



B. Tạo project

Sau khi đang connet thành công ta có tạo 1 project trong tfs như sau:

Team -> Connect a team... -> new team project...



và thực hiện theo các bước



Hiển thị project trên web:




[TFS] Team Explorer và trang Web TFS

thuvienwinform - Team Explorer là nơi quản lí các kết nối, công việc được giao...Để hiển thị nó ta làm như sau:


Trong này có sẵn nhiều video hướng dẫn các bạn có thể xem trước, nó rất bổ ích đấy

Còn về phần web, nó quản lí tất cả của TFS trên này: các project, các work item, code, test,...
Để có cái nhìn trực quan các bạn truy cập vào địa chỉ TFS để xem


[TFS] Thêm tài khoản làm quản trị (Admin)

thuvienwinform - Để phân biệt một tài khoản có quyền quản trị (Admin) hay không thì bạn ấn vào nút cài đặt ở góc trên phải (nếu tài khoản nào là limited thì sẽ không nhìn thấy). Trong cài đặt này mà thấy xuất hiện tab Acess Level 
Tài khoản Admin
Để thêm một tài khoản làm admin, ta mở TFS Administration Console lên, tại Application Tiers chọn group  Membership




Chọn Team Foundation Administrators -> properties...

Tích vào windows user or group -> add

Điền tài khoản cần thêm vào
 Sau đó ok và ok
Xong rùi đấy, thử đăng nhập xem đã có Acess Level chưa



[TFS] Thêm thành viên, tài khoản vào nhóm


thuvienwinform - Để thêm tài khoản vào nhóm ta có 2 cách. Cách 1 là tạo tài khoản trên máy cài TFS. Cách 2 là thêm các máy vào cùng work group hoặc domain rồi thêm vào TFS.

Trong bài này mình sẽ hướng dẫn cách 1. Còn cách 2 nếu bạn nào có nhu cầu mình sẽ hướng dẫn sau (p/s: mình cũng chưa thử :3)!

Cách 1 gồm 2 bước là tạo tài khoản sau đó thêm tài khoản vào TFS!

Bước 1: Tạo tài khoản trên máy cài TFS

Trong bước này này có 2 phương án để thêm tài khoản, 2 phương án này là tương tự nhau
Phương án 1: Thêm bằng lệnh net user trong cmd (nhanh hơn)
- Mở cmd với quyền admin
- Gõ vào net user TàiKhoản MậtKhẩu /add
- Chú ý là mật khẩu phải đủ mạnh thì mới được chấp nhận
+ Ví dụ: net user TaiKhoan1 TaiKhoanSo1 /add
+ Ảnh minh họa:



Phương án 2: Thêm bằng Computer Management (compmgmt.msc)
- Mở Computer Management (có thể mở nhanh bằng lệnh compmgmt.msc)
- Chuyển vào Users trong Local User and Group
- Sau đó chuột phải vào chọn New User (chú ý là tích vào Password nerver experes)




Khi khởi động những tài khoản này sẽ hiện thị lên rất nhiều, để ẩn đi làm như sau: click kép vào user trong ComputerManagerment -> chuyển qua tab Member of -> remove



Bước 2: Thêm những tài khoản này vào TFS
- Khi chưa được thêm thì sẽ không đăng nhập được
- Đăng nhập TFS trên web bằng tài khoản Admin -> ấn vào nút cài đặt ở góc trên phải

Nhập tài khoàn vào và ấn check name



cuối cùng ấn save change để lưu

Ok thử đăng nhập coi nào 



Nhận ngay 100$ cho VPS

Mua hàng ủng hộ page

Ủng hộ page

Nhãn

Code (45) Team Foundation Server (17) Database (14) News (14) product (13) toolbox (10) Linq (9) SoftDesign (8) XNA (6) API (5) Project (5) item (4)

- Bản quyền thuộc về Thư Viện WinForm - Giao diện: Metrominimalist - Thiết kế: Johanes Djogan -