góp ý : chuyển ảnh trắng đen không phải là lấy 3 kênh màu RGB cộng lại chia 3 đâu .

Đây là công thức bạn nhé :D

Y = 0.2126 * R + 0.7152 * G + 0.0722 * B

Cho mình hỏi thay đổi pixel tùy ý thì làm như thế nào?

Ví dụ: Mỗi pixel tăng 100.

Bạn có thể làm như sau: R += 100, G += 100, B += 100.

Thân.

Cho em hỏi muốn hiển thị ảnh bmp ra màn hình console thì làm sao ạ?

Điều đó không được bạn nhé. Bạn có thể xem thêm bài này nếu vẫn muốn làm, nhưng sẽ không như bạn nghĩ đâu https://www.stdio.vn/articles/read/394/do-hoa-tren-cua-so-dong-lenh-console-graphics

Cám ơn anh nhiều ạ. Em đã làm được.

Vậy nếu em muốn chỉnh độ sáng ảnh tăng hay giảm thì làm sao ạ?

Em nhân mỗi kênh cho tỷ lệ K (số thực), theo kinh nghiệm cá nhân thì dao động trong khoảng 0.0 đến 2.0 thử. Nếu kết quả mỗi phép nhân đụng trần 255 thì cho nó là 255, còn không thì gán kết quả vào kênh màu đó. Nhớ đừng đụng vào kênh Alpha (nếu có).

Các anh cho em hỏi để thay đổi kích thước (resize) thì mình làm thế nào ạ?

Có nhiều chiến thuật, nhưng em có thể thử với việc lựa chọn thêm hoặc bớt màu sắc theo chiến thuật Nearest Neighbor. Khi phóng to hay thu nhỏ, việc em cần làm là xét xem pixel tại ảnh đang xét sẽ được chọn, hay bỏ bớt.

Cho em hỏi nếu em muốn đếm những bit màu xám thì mình có thể làm như nào ạ

Em duyệt tất cả pixel rồi xét điều kiện và đếm.

Có thể chỉ cho em cách chia 1 ảnh bmp thành n dòng m cột không anh?

Bản thân code bên trên đã làm điều đó rồi đó em.

Cho tớ hỏi sao tớ chạy nó chỉ ra dòng Cannot open file for reading.

Em coi thử vài nguyên nhân sau:

* Không có file tại đường dẫn mà em chỉ định (do em chưa biết chính xác đường dẫn hoặc viết đường sai, lỗi này thường gặp).

** File gặp vấn đề.

rất cảm ơn tác giả, bài viết rất chi tiết, và đúng lúc mình đang cần nữa

cho em hỏi cái đoạn "header.bpp/8" là sao vậy ạ ?

Cho em hỏi em đã dùng source trên nhưng khi đọc thì hàm fread lại đọc ngược từ dưới bức ảnh lên rất khó xử lý bức ảnh ạ , có cách nào đọc từ trên xuống như bình thường k ạ , em có dùng fseek nhưng vẫn như cũ :(

fread vẫn đọc từ trên xuống mà? Mình đặt con trỏ file vào đâu thôi.

Mọi người nghĩ khoa học máy tính là kỹ thuật thiên tài nhưng thực tế thì ngược lại, chỉ cần nhiều người cùng xây dựng, nó sẽ thành bức tường đá thu nhỏ. Brian W. Kernighan.