Tôi có một hình ảnh trong điều khiển xem hình ảnh. Người dùng có thể thực hiện xoay và thu phóng trên hình ảnh này, do tọa độ x và y của hình ảnh liên tục thay đổi. Có cách nào để tìm ra tọa độ x và y hiện tại của hình ảnh bên trong điều khiển hình ảnh không? Bất kỳ mã nào liên quan đến nó sẽ có lợi hơn.Làm thế nào để có được tọa độ x và y của hình ảnh bitmap trong điều khiển hình ảnh?
Trả lời
ImageView sử dụng lớp Ma trận để thực hiện thu phóng (Thu phóng) và dịch (pan). Nếu bạn có thể giữ ma trận, thì bạn có thể truy xuất tọa độ (trái, trên) của chế độ xem được thu phóng/thu nhỏ.
Mã cho Zoomable & ImageView mở rộng pannable có sẵn trong một trong những stackoverflow posts
Trong bài đăng mà bạn sẽ thấy lớp ImageView mở rộng có ma trận như là một biến thành viên được sử dụng để mở rộng quy mô/dịch.
Bạn có thể sử dụng Mã sau đây để nhận được giới hạn của hình ảnh thu nhỏ/được phân rã (thực tế là bitmap) từ ma trận.
RectF r = new RectF();
matrix.mapRect(r);
Log.i(TAG, "Rect " + r.left + " " + r.top + " " + r.right + " " + r.bottom + " " + mOverAllScale + " ");
mới được bổ sung ĐÁP
Để hiểu mã dưới đây, bạn cần phải đi qua link này và hiểu được.
Dịch
Khi người dùng kéo hình ảnh, màn hình phối hợp (Absolute) và Bitmap phối hợp không đồng bộ hóa. [Bất cứ điều gì bạn viết vào bitmap được hiển thị thông qua canvas (trong onDraw())] Nếu áp dụng màu, người dùng sẽ thấy nó được áp dụng trên một vùng khác trên hình ảnh bitmap. Để sửa lỗi này, bạn cần dịch. Bản dịch sẽ thay đổi các điều phối đầu vào của người dùng (là các tọa độ màn hình) thành các tọa độ bitmap (theo ý định của người dùng) Đoạn mã sau sẽ giúp bạn thực hiện việc dịch.
Hãy nhập người dùng tọa độ là (x, y) sau đó,
RectF r = new RectF();
matrix.mapRect(r);
Log.i(TAG, "Rect " + r.left + " " + r.top + " " + r.right + " " + r.bottom + " " + mOverAllScale + " ");
float newX = x - r.left;
float newY = y - r.top;
Bạn sử dụng mới tọa độ ở vị trí của (x, y).
Zooming (Scaling)
Khi người dùng nhúm vào/ra; bitmap được Thu nhỏ/Phóng to. Bạn phải quan sát rằng bitmap gốc không bị thay đổi, việc thu phóng chỉ từ phối cảnh hiển thị. Điều này một lần nữa dẫn đến mất đồng bộ giữa màn hình và bitmap. Màu được áp dụng trên màn hình sẽ được phản ánh trong hình ảnh được hiển thị. Đoạn mã sau sẽ giúp bạn thực hiện chia tỷ lệ.
// mScalingFactor shall contain the scale/zoom factor
float scaledX = (event.getX() - r.left);
float scaledY = (event.getY() - r.top);
scaledX /= mScalingFactor;
scaledY /= mScalingFactor;
Shash
nhờ Shash. Vui lòng cho tôi biết về những phát hiện của bạn. –
Đã chỉnh sửa câu trả lời – Shash316
Cảm ơn rất nhiều Shash. –
- 1. Nhận tọa độ x, y mới của một điểm trong hình ảnh được xoay
- 2. Làm thế nào để có được tọa độ x, y của các đối tượng được trích xuất trong javacv?
- 3. Điều khiển bật lên WPF - Tìm tọa độ X, Y
- 4. Nhấp vào hình ảnh, nhận tọa độ
- 5. Làm cách nào để nhận tọa độ của con chuột khi điều khiển được nhấp?
- 6. làm thế nào để có được hình ảnh địa lý
- 7. Làm thế nào để có được một bitmap của phần tử hình ảnh WatiN?
- 8. Chụp x, y Tọa độ với Python PIL
- 9. Chức năng để có được tọa độ X/Y để di chuyển trên hình tam giác với các cạnh mềm
- 10. Tạo hình bitmap có thể vẽ trong x nhưng kéo dài trong y
- 11. Nhận hình ảnh Blob và chuyển đổi hình ảnh đó thành hình ảnh Bitmap
- 12. gnuplot: Vẽ X, Y tọa độ và nhãn của họ
- 13. Nhận hình ảnh bitmap từ một chế độ xem Điều khiển
- 14. Làm cách nào để hủy các điểm trong tọa độ ảnh của camera và có được tọa độ ảnh chưa phân loại tương ứng?
- 15. Làm thế nào để có được tên tập tin hình ảnh và thẻ hình ảnh trong album ảnh?
- 16. Thay đổi độ mờ của hình ảnh Bitmap
- 17. Tôi nên dịch như thế nào từ các tọa độ không gian màn hình sang tọa độ không gian hình ảnh trong một hộp hình WinForms?
- 18. Làm cách nào để có được màu phối hợp x, y của một ảnh?
- 19. nhận tọa độ X và Y cho phần tử div
- 20. Nhận dạng hình ảnh trong hình ảnh trong C#
- 21. Cách đặt hình ảnh bitmap trong canvas của Chế độ xem tùy chỉnh của tôi?
- 22. Làm thế nào để có được vĩ độ và lâu dài cho một điểm ảnh của một hình ảnh eumetsat bằng cách sử dụng python?
- 23. Lấy tọa độ X & Y của một nút trong Android?
- 24. Làm thế nào để có được một mảng hình ảnh?
- 25. Làm thế nào để tìm góc quay của hình ảnh?
- 26. Tính tọa độ mới từ tọa độ cũ và x và y
- 27. Làm thế nào để kết hợp nhiều hình ảnh thành một hình ảnh trong Android?
- 28. Nguồn điều khiển hình ảnh WPF
- 29. Chuyển đổi độ dài/vĩ độ thành các tọa độ X/Y
- 30. Làm thế nào để tôi có được hình ảnh bằng cách sử dụng jquery ajax?
Check it out liên kết này có thể hữu ích ..... http://stackoverflow.com/questions/2447564/detect-touch-on-bitmap – Uttam