Trong trường hợp tổng quát thì một tập tin xzy.ico có thể chứa nhiều icon (thường một icon nhưng với những kích thước to nhỏ khác nhau). Nếu bạn quan tâm thì tìm đọc.
Nói thật ngắn gọn thì trong cấu trúc của tập tin ico được định nghĩa nhiều thứ vd. kích thước, mầu của các pixels trong bitmap v...v, và định nghĩa cả vị trí 1 điểm (1 pixel) và mầu của nó. Điểm đó thường được định nghĩa là pixel đầu tiên (góc trên bên trái) và mầu thường là mầu trắng. Mầu của pixel "nọ" được gọi là "mầu trong suốt". Khi ico được hiển thị thì nếu pixel nào trong bitmap của bạn có mầu trùng với "mầu trong suốt" thì nó không được nhìn thấy (vì nó có "mầu trong suốt" mà), tức nó sẽ được hiển thị như mầu "nền". Những pixel nào có mầu khác với "mầu trong suốt" thì sẽ được hiển thị với mầu mà nó có trong bitmap.
Vd. bạn có hình tròn đỏ trên nền hình vuông trắng thì "mầu trong suốt" là mầu trắng. Bây giờ icon sẽ được hiển thị như thế nào trên thanh tiêu đề mầu Blue của cửa sổ? Các pixels mầu đỏ có mầu khác "mầu trong suốt" vậy chúng được hiển thị với mầu của chúng là mầu đỏ, còn các pixels mầu trắng có mầu trùng với " mầu trong suốt" nên không nhìn thấy chúng, hay nói cách khác là chúng được hiển thị với mầu "nền", tức được hiển thị với mầu Blue.
Nếu bạn biết lập trình thì bạn tự viết code để convert vd. từ BMP sang ICO. Ngoài ra có vô số phần mềm làm việc này.
Trong icon tôi gửi cho bạn có logo trên nền trắng. Nhưng không có nghĩa là bạn vẽ một BMP có logo mầu trên nền trắng rồi sau đó bạn đổi tên thành ICO là được. Vì các thông tin này phải được ghi trong "lõi", trong cấu trúc của tập tin ICO. Bạn có BMP nhìn giống thế nhưng trong lõi BMP không có các thông tin cần thiết (mầu trong suốt ...) thì sau đó không thể đơn giản đổi tên thành ICO để có icon được.