Tại sao hình ảnh BMP được lưu trữ lộn ngược và không đệm nên chúng được căn chỉnh 4 byte?Tại sao các bmps được lưu trữ lộn ngược?
Trả lời
Dưới đây là một trích dẫn từ Petzold:
Vì vậy, trong Dibs, hàng dưới cùng của hình ảnh là dòng đầu tiên của file, và hàng trên cùng của hình ảnh là hàng cuối cùng trong tệp. Đây là được gọi là tổ chức từ dưới lên. Bởi vì tổ chức này là phản trực giác, bạn có thể hỏi tại sao nó được thực hiện theo cách này.
Vâng, tất cả đều quay lại Trình quản lý bản trình bày OS/2. Một người nào đó tại IBM đã quyết định rằng tất cả các hệ tọa độ trong PM — bao gồm cả các hệ thống cho cửa sổ, đồ họa và bitmap — phải nhất quán. Điều này đã kích động cuộc tranh luận : Hầu hết mọi người, kể cả những lập trình viên đã làm việc với môi trường lập trình hoặc cửa sổ văn bản toàn màn hình, suy nghĩ theo điều khoản của tọa độ dọc tăng giảm xuống màn hình. Tuy nhiên, các lập trình viên đồ họa máy tính hardcore tiếp cận màn hình video từ một phối cảnh bắt nguồn từ toán học của hình học phân tích. Điều này liên quan đến một hệ tọa độ hình chữ nhật (hoặc Descartes), trong đó tăng tọa độ dọc đi lên trong không gian.
Tóm lại, các nhà toán học đã thắng. Tất cả mọi thứ trong PM đều được gắn với một nguồn gốc ở góc dưới bên trái , bao gồm cả các tọa độ cửa sổ. Và đó là cách DIBs trở thành như vậy.
Nguồn: Charles Petzold, Lập trình cho Windows 5th Edition, Chương 15.
Điều thú vị là họ giữ đại diện này cho DIB nhưng thay đổi nó cho các tọa độ cửa sổ, giới thiệu lại sự không nhất quán. –
Chúng được lưu trữ phù hợp với hệ tọa độ hiển thị. (0, 0) nằm ở góc trên bên trái. X (tương ứng với chiều rộng) đi từ trái sang phải. Y (tương ứng với chiều cao) đi từ trên xuống dưới.
Đối với "Câu hỏi 4 Byte" nhìn thấy Why must "stride" in the System.Drawing.Bitmap constructor be a multiple of 4?
Không, không. BMP được lưu trữ từ dưới lên trên, từ trái sang phải. – mgiuca
- 1. Các thủ tục được lưu trữ kỹ thuật đảo ngược
- 2. Tại sao hầu hết các ứng dụng iPhone không hoạt động lộn ngược?
- 3. Tại sao chế độ phong cảnh AVCaptureVideoOrientation dẫn đến hình ảnh tĩnh lộn ngược?
- 4. Tại sao mật khẩu ban đầu không được lưu trữ?
- 5. Mẫu lưu trữ với các thủ tục được lưu trữ
- 6. Tại sao một số nguyên byte được lưu trữ ngược? Điều này chỉ áp dụng cho tiêu đề?
- 7. Sao lưu kho lưu trữ của Mercurial tại địa phương
- 8. d3 biểu đồ thanh là lộn ngược
- 9. Git kho lưu trữ tương thích ngược
- 10. MS Build sao chép danh sách các thư mục được lưu trữ tại mục
- 11. Trình giả lập Android lộn ngược trong Eclipse Juno
- 12. Khởi chạy hình ảnh hiển thị lộn ngược trên iPad.
- 13. Tại sao tôi cần "lưu trữ": "có" trong elasticsearch?
- 14. Tại sao máy chủ lưu trữ hủy kết nối?
- 15. Tại sao C99 phàn nàn về kích thước lưu trữ?
- 16. Tại sao lưu trữ web p2p không được sử dụng rộng rãi?
- 17. Các tệp evtx được lưu trữ ở đâu được lưu trữ?
- 18. Tại sao có độ dài tối đa cho tên thủ tục được lưu trữ?
- 19. Tại sao BinaryReader.ReadUInt32() đảo ngược mẫu bit?
- 20. Tại sao các tham số cho `atan2`“ ngược ”?
- 21. Matlab: tải tệp .mat, tại sao lại là cấu trúc? Tôi có thể chỉ cần lưu trữ các vars được lưu trữ vào bộ nhớ?
- 22. Lưu trữ Git của kho lưu trữ với các thay đổi không được cam kết
- 23. Chia tỷ lệ hình ảnh được lưu trữ tại S3
- 24. Tại sao Double.valueof javadoc lại nói nó lưu trữ các giá trị, khi nó không?
- 25. Tại sao Guid.ToString() đảo ngược thứ tự byte?
- 26. Chuỗi thoát PHP PHP '\' - Tại sao nó không được lưu trong cơ sở dữ liệu với dấu gạch chéo ngược?
- 27. Video quay video của Android nhưng phát lộn ngược
- 28. Tại sao maven sử dụng kho lưu trữ nội bộ của tôi trước kho lưu trữ cục bộ của tôi?
- 29. Flask static_folder được lưu trữ trên S3
- 30. Tại sao Internet Explorer kích hoạt sự kiện "lưu trữ" cửa sổ trên cửa sổ lưu trữ dữ liệu?
thể trùng lặp của [Tại sao "sải chân" trong constructor System.Drawing.Bitmap phải là một bội số của 4? ] (http://stackoverflow.com/questions/2185944/why-must-stride-in-the-system-drawing-bitmap-constructor-be-a-multiple-of-4) –
http://support.microsoft .com/kb/q81498/tuyên bố upsidedownness là một tạo tác của tương thích ngược với Trình quản lý Trình bày, có nghĩa là nó là một cái gì đó mà IBM đã làm cho OS/2. –
Chúng lộn ngược về khả năng tương thích với Trình quản lý bản trình bày OS/2. Nó thực sự có thể là một trong hai, bitmap đầu tiên của dòng đầu có chiều cao âm. –