0

このコードは、UIImagePickerController を使用するためのアップルのドキュメントから取得したため、私を悩ませています。「if (editedImage)」で画像が編集されたかどうかをチェックするセクションは、常に true になります。ピッカーが編集YESに設定されている場合、画像が編集されていなくてもUIImagePickerControllerEditedImageには常にデータがあるため、これは(このサイトの人々によると)そうです。問題は、両方 (UIImagePickerControllerEditedImage と UIImagePickerControllerOriginalImage) が非 nil であることが判明した場合、どちらが選択されたかをどのように知ることができるかということです。

こことGoogleで多くのチュートリアルと他の多くの質問を調べました。しかし、編集していなくても、コードのロジックによって編集された画像が 100% 取得されるという同じ事実に戻ります。

このコードと他の質問で与えられた他のコードをテストしましたが、問題は常に同じままで、ユーザーが使用したいものかわかりません。ディクショナリに知っておくべき BOOL 値があれば、本当に役に立ちます。

アルバムから写真を選択するか、新しい写真を撮る場合にアプリをテストしているときに、編集画面に移動し、画像をキャンセルまたは受け入れてサイズ変更/トリミングできます。また、承認を押すと、画像に触れていなくても、常に編集された画像が表示されます。

イメージ ピッカーの Apple ドキュメント API のコードを次に示します。

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
    {
        NSString *mediaType = [info objectForKey: UIImagePickerControllerMediaType];
        UIImage *originalImage, *editedImage, *imageToSave;

        // Handle a still image capture
        if (CFStringCompare ((CFStringRef) mediaType, kUTTypeImage, 0)
            == kCFCompareEqualTo) {

            editedImage = (UIImage *) [info objectForKey:
                                       UIImagePickerControllerEditedImage];
            originalImage = (UIImage *) [info objectForKey:
                                         UIImagePickerControllerOriginalImage];

            if (editedImage) {
                imageToSave = editedImage;
            } else {
                imageToSave = originalImage;
            }
        }
      // work with image or save and exit modal. 
    }
4

1 に答える 1

0

ウォルボリンの答えによる最後の質問:

これは、UIImagePickerControllerの編集モードをtrueに設定した場合の動作方法です。画像に触れなくても、画像を自動的に拡大縮小してトリミングし、現在正方形(白枠)で表示されている画像のみを使用します。したがって、編集された画像プロパティが常に割り当てられるか、nullではないと言います– Wolvorin Jan 30 at 8:32

于 2013-02-17T16:51:09.640 に答える