0 k thích
454 đã xem
trong KTPM bởi (560 điểm)


thầy cô anh chị giúp em bài này với ạ, bây giờ file bmp em còn rất mơ hồ (không biết cắt ảnh thành nhiều ảnh nhỏ và lưu vào từng file bmp như thế nào). em cảm ơn nhiều ạ

1 Câu trả lời

0 k thích
bởi (210 điểm)
Bạn phải tìm hiểu cấu trúc bitmap lưu như thế nào để load lên cho đúng trước đã. Thường thì bitmap lưu trữ nó sẽ ngược so với tấm bitmap bạn nhìn thấy thực tế.

Load lên xong dựa vào phần h và w tính xem cần cắt thành bao nhiêu tấm bmp, mỗi tấm thông thường bao nhiêu, chắc chắn sẽ có tấm bmp chia ra bị lẽ nên kích thước khác, vậy phải tính trước luôn kích thước của những tấm mà kích thước nó lẻ.

Xong dùng vòng lặp for lấy từng mảnh bmp nhỏ ghi xuống file thôi (dĩ nhiên trước khi lưu phải tính toán phần header lưu trước mới lưu mảng pixel sau). Lưu ý phần padding.
bởi (560 điểm)
vậng ạ, cái em thắc mắc là lấy từng mảnh bmp nhỏ ra như thế nào ý ạ, anh có demo quăng cho em phát ^^
bởi (3.2k điểm)
bạn chịu khó lên gg search đi...có sẵn trên đó cả rồi...quan trọng là search đúng từ khóa thôi...nên search = English
bởi (560 điểm)
em đã thử tìm bằng tiếng anh mà nó cũng không ra anh ạ, a chỉ em cách tìm bài này như thế nào với
bởi (3.2k điểm)
vì là bài tập nên ko thể cho hết từ đầu đến cuối được, phần lớn là do e, a chỉ hướng dẫn sơ qua thôi.
E xem format của file bmp ở đây: http://cppcoder.blogspot.com/2007/11/bmp-file-format.html
Dựa vào format đó e có thể tạo các struct, rồi đọc dữ liệu vào đó, e có thể tham khảo cách đọc file bmp tại đây: http://stackoverflow.com/questions/14279242/read-bitmap-file-into-structure
khi đã có được data của file bmp rồi split không là vấn đề, e đã có mảng byte của ảnh, việc của e là chia mảng byte đó thành các mảng con, đồng thời khi chia ra từng mảng, e cũng cần thay đổi một số giá trị trong header để phù hợp với mảng con e vừa cắt ra, ví dụ cần thay đổi giá trị height, width trong header, size, v.v. sao cho phù hợp với mảng byte e vừa cắt, sau đó ghi tất cả xuống file là ok..chúc e thành công :))
Chào mừng đến với Q&A FIT. Bạn có thể đặt câu hỏi và nhận được câu trả lời từ các bộ phận hỗ trợ và những thành viên khác tại Khoa Công nghệ Thông tin, Trường Đại học Khoa học Tự nhiên, Đại học Quốc gia TP.HCM. Bạn hãy đăng nhập bằng tài khoản Google để gửi hoặc trả lời các câu hỏi.
...