Tôi gặp khó khăn khi hiểu sự khác biệt giữa lớp Image
và lớp Bitmap
. Bây giờ, tôi biết rằng các Bitmap
kế thừa từ Image
nhưng từ những gì tôi hiểu cả hai đều rất giống nhau. Có ai có thể làm sáng tỏ điều này không?Hình ảnh so với lớp bitmap
Trả lời
Lớp Bitmap là triển khai lớp Hình ảnh. Lớp Image là một lớp trừu tượng;
Lớp Bitmap chứa 12 hàm tạo xây dựng đối tượng Bitmap từ các tham số khác nhau. Nó có thể xây dựng Bitmap từ một bitmap khác và địa chỉ chuỗi của hình ảnh.
Xem thêm in this comprehensive sample.
Tôi nghĩ bạn có nghĩa là triển khai hình ảnh trừu tượng lớp học. – kenny
Hình ảnh cung cấp quyền truy cập trừu tượng vào hình ảnh tùy ý, nó xác định một tập hợp các phương pháp có thể áp dụng lôgic khi thực hiện bất kỳ hình ảnh nào. Nó không bị ràng buộc với bất kỳ định dạng hình ảnh cụ thể hoặc thực hiện. Bitmap là một triển khai cụ thể cho lớp trừu tượng hình ảnh đóng gói đối tượng bitmap của Windows GDI. Bitmap chỉ là một triển khai cụ thể cho lớp trừu tượng hình ảnh mà chuyển tiếp trên đối tượng bitmap GDI.
Ví dụ: Bạn có thể tạo triển khai của riêng bạn thành Tóm tắt hình ảnh, bằng cách kế thừa từ lớp Hình ảnh và triển khai phương pháp trừu tượng.
Dù sao, đây chỉ là một cách sử dụng cơ bản đơn giản của OOP, nó không phải là khó nắm bắt.
Đây là cách làm rõ vì tôi đã thấy mọi thứ được thực hiện bằng mã thành thật khó hiểu - tôi nghĩ ví dụ sau có thể hỗ trợ người khác.
Như những người khác đã nói trước đây - Bitmap kế thừa từ Tóm tắt ảnh lớp
Tóm tắt một cách hiệu quả có nghĩa là bạn không thể tạo một đối tượng mới() của nó.
Image imgBad1 = new Image(); // Bad - won't compile
Image imgBad2 = new Image(200,200); // Bad - won't compile
Nhưng bạn có thể làm như sau:
Image imgGood; // Not instantiated object!
// Now you can do this
imgGood = new Bitmap(200, 200);
Bây giờ bạn có thể sử dụng imgGood như bạn sẽ đối tượng bitmap tương tự nếu bạn đã thực hiện những điều sau:
Bitmap bmpGood = new Bitmap(200,200);
Các điều tốt đẹp ở đây là bạn có thể vẽ đối tượng imgGood bằng cách sử dụng một đối tượng Đồ họa
Graphics gr = default(Graphics);
gr = Graphics.FromImage(new Bitmap(1000, 1000));
Rectangle rect = new Rectangle(50, 50, imgGood.Width, imgGood.Height); // where to draw
gr.DrawImage(imgGood, rect);
Đây imgGood có thể bất kỳ đối tượng Image - Bitmap, Metafile, hoặc bất cứ điều gì khác mà thừa hưởng từ hình ảnh!
- 1. Hình ảnh so với Hình ảnh so với Hình ảnh - Các mẫu đặt tên
- 2. Việc sử dụng bộ nhớ và phân mảnh các lớp ảnh .NET: Bitmap so với Metafile
- 3. Giải mã hình ảnh bitmap JPEG2000 với Javascript
- 4. Tải hình ảnh liên hệ vào bitmap
- 5. Chụp màn hình vào một ảnh bitmap
- 6. Thay đổi kích thước hình ảnh bitmap
- 7. vẽ hình ảnh lên bitmap lớn hơn
- 8. C# cách lấy bitmap từ hình ảnh
- 9. So sánh hình ảnh với php + gd
- 10. Nhận hình ảnh Blob và chuyển đổi hình ảnh đó thành hình ảnh Bitmap
- 11. Cách đặt hình ảnh vào hộp hình từ Bitmap
- 12. Java: ImageIcon so với hình ảnh khác biệt
- 13. Lớp phủ hình ảnh với ma trận
- 14. Áp dụng một lớp phủ (bộ lọc hình ảnh) vào một Bitmap
- 15. Divs với nguồn gốc hình ảnh so với thẻ img
- 16. Android - Làm mờ hình ảnh bitmap trên canvas
- 17. Kích thước hình ảnh không chính xác trong android khi sử dụng tệp hình ảnh bitmap
- 18. Ảnh bitmap trong Android
- 19. Điểm ảnh trộn từ hai ảnh bitmap
- 20. Cách tạo hình ảnh SVG 'pixelized' từ bitmap?
- 21. Lưu hình ảnh bitmap vào thẻ SD trong Android
- 22. Inno Setup Hình ảnh bitmap không hợp lệ
- 23. Nội suy song song để phóng to hình ảnh bitmap
- 24. So sánh hai hình ảnh pixel-khôn ngoan với PIL (Thư viện hình ảnh Python)
- 25. cách tạo hình ảnh gif bằng hai bitmap trong android
- 26. Chuyển đổi hình ảnh trong một PictureBox vào một bitmap
- 27. Thay đổi độ mờ của hình ảnh Bitmap
- 28. Tạo hình ảnh bitmap từ EditText & nội dung của nó
- 29. Chuyển đổi hình ảnh sang bitmap biến nền đen
- 30. Cách chuyển đổi loại hình ảnh thành bitmap
Người qua đường: có một câu trả lời đúng hơn [ở đây] (http://stackoverflow.com/a/19678330/3367144) – kdbanman
Có thể trùng lặp của [Sự khác nhau giữa System.Drawing.Image và System.Drawing.Bitmap là gì ?] (http://stackoverflow.com/questions/19678195/what-is-the-difference-between-system-drawing-image-and-system-drawing-bitmap) –