Tôi đang sử dụng -writeImageToSavedPhotosAlbum
để gửi hình ảnh đến Thư viện ảnh. Vấn đề tôi gặp phải là mặc dù chỉ định định hướng, hình ảnh kết thúc với định hướng sai.Tại sao -writeImageToSavedPhotosAlbum định hướng hình ảnh của tôi không chính xác?
Trong thực tế, có vẻ như những người được định hướng AVCaptureVideoOrientationPortrait
cuối lên trông như AVCaptureVideoOrientationPortraitUpsideDown
, và AVCaptureVideoOrientationLandscapeLeft
cuối lên trông như AVCaptureVideoOrientationLandscapeRight
và ngược lại.
Có lý do nào khiến điều này xảy ra không? Dưới đây là một số chi tiết khác:
Tôi không có ViewController thực hiện thay đổi định hướng tự động cho chế độ xem của tôi.
Tất cả hình ảnh hiển thị [image imageOrientation]
bằng AVCaptureVideoOrientationPortrait
, nhưng tôi theo dõi định hướng thực tế và chuyển giá trị đó đến -writeImageToSavedPhotosAlbum
một cách độc lập.
Tôi đang sử dụng: -writeImageToSavedPhotosAlbum:orientation:completionBlock:
Tôi đánh giá cao nó nếu ai đó có thể làm sáng tỏ vào này.
UPDATE:
Mặc dù những gì tôi đọc trong tài liệu,
Nếu bạn muốn lưu một đối tượng UIImage, bạn có thể sử dụng phương pháp UIImage CGImage để có được một CGImageRef, và đúc hình ảnh của imageOrientation to ALAssetOrientation.
tôi đã đi trước và thay đổi định hướng tôi vượt qua trong:
switch (lastOrientation) {
case UIDeviceOrientationPortrait:
default:
alOrientation = ALAssetOrientationUp;
break;
case UIDeviceOrientationPortraitUpsideDown:
alOrientation = ALAssetOrientationDown;
break;
case UIDeviceOrientationLandscapeLeft:
alOrientation = ALAssetOrientationLeft;
break;
case UIDeviceOrientationLandscapeRight:
alOrientation = ALAssetOrientationRight;
break;
}
[library writeImageToSavedPhotosAlbum:[image CGImage]
orientation:(ALAssetOrientation) alOrientation// [image imageOrientation]
completionBlock:^(NSURL *assetURL, NSError *error) {
NSLog(@"completion block");
}];
Bây giờ, tất cả hình ảnh được định hướng với cạnh trái của họ xuống, như thể chúng là cảnh quan bên phải. Tôi vẫn không có nó đúng, nhưng ít nhất tôi có chúng theo định hướng thống nhất.
Một lần cập nhật khác:
Tác phẩm này hoạt động. Tại sao, tôi không biết:
switch (lockedOrientation) {
case UIDeviceOrientationPortrait:
default:
alOrientation = ALAssetOrientationRight; //3 instead ofALAssetOrientationUp;
break;
case UIDeviceOrientationPortraitUpsideDown:
alOrientation = ALAssetOrientationLeft; //2 insted of ALAssetOrientationDown;
break;
case UIDeviceOrientationLandscapeLeft:
alOrientation = ALAssetOrientationUp; //0 instead of ALAssetOrientationLeft;
break;
case UIDeviceOrientationLandscapeRight:
alOrientation = ALAssetOrientationDown; //1 instead of ALAssetOrientationRight;
break;
}
[library writeImageToSavedPhotosAlbum:[image CGImage]
orientation:(ALAssetOrientation) alOrientation// [image imageOrientation]
completionBlock:^(NSURL *assetURL, NSError *error) {
NSLog(@"completion block");
}];
"lockedOrientation" trong đoạn mã cuối cùng là gì? – ebi