Theo tài liệu, setRotation(90) nên xoay hình ảnh chụp JPEG (takePicture trong chế độ phong cảnh.setRotation (90) để chụp hình ở chế độ dọc không hoạt động trên các thiết bị samsung
này hoạt động tốt trên điện thoại HTC, nhưng không hoạt động trên Samsung Google Nexus S và Samsung Galaxy S3.Đây có phải là lỗi không?
Tôi biết rằng tôi có thể sử dụng phép biến đổi ma trận, nhưng muốn hệ điều hành có thể thực hiện điều này hiệu quả hơn và không muốn rủi ro quay quá nhiều trên một số thiết bị khác.
chỉnh sửa
Đặt camera.setDisplayOrientation(90);
làm cho chế độ xem trước ở chế độ dọc, tuy nhiên nó không ảnh hưởng đến ảnh chụp.
Hơn nữa, bên cạnh setRotation
, tôi cũng đã cố gắng đặt kích thước hình ảnh - nơi tôi lật h
với w
: parameters.setPictureSize(1200, 1600);
. Điều này cũng không có bất kỳ ảnh hưởng nào.
giải pháp
Rõ ràng điện thoại Samsung thiết lập các thẻ định hướng EXIF, chứ không phải là quay pixel riêng lẻ. Theo đề xuất ariefbayu
, việc đọc Bitmap bằng cách sử dụng BitmapFactory
không hỗ trợ thẻ này. Mẫu mã của ông là giải pháp, và giải pháp này cũng tương thích với việc sử dụng inSampleSize
.
bạn có gặp phải bất kỳ lỗi nào không? – kosa
Xem câu trả lời này vì nó có thể hữu ích: http://stackoverflow.com/questions/3841122/android-camera-preview-is-sideways/5110406 –
@thinksteep: không - tôi không thấy bất kỳ lỗi nào thông qua bảng điều khiển Android . – tofi9