0

3つのオプションがあるUIActionSheetがあります-

  1. 写真を撮る(カメラから)
  2. ライブラリから選択
  3. 写真を編集します(ユーザーがプロフィール写真を持っている場合)

UIImagePickerControllerを使用していますが、最初の2つのオプションに問題はありません。ユーザーは写真を選択し、ズーム/移動して写真を切り抜くことができます。

だから、私の質問は、現在の倍率とフレームで編集用に保存済みの写真(3番目のオプション)をどのように配置できるかということです。 「写真の編集」を選択した場合、プレビュー後に選択したのと同じ写真の「状態」を取得したい。

これが、ネイティブの「連絡先」アプリの仕組みです。

写真のプレビュー

4

1 に答える 1

1

UIImagePickerControllerEditedImageデリゲートメソッドでオブジェクトにアクセスする必要があります。

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
    UIImage *image = [info objectForKey:UIImagePickerControllerEditedImage];
    if (!image) image = [info objectForKey:UIImagePickerControllerOriginalImage];
    ....
}

次に、この画像を独自の編集ビューコントローラで使用できます。ALAsset連絡先アプリは、編集した画像を破壊的な変更に戻すため、このように機能します。アプリのユーザーに対してこれを行うのはおそらく悪い考えです。そのため、の代わりに編集された画像を処理する独自の編集画像コントローラーを作成することをお勧めしますUIImagePickerControllergithubで検索すると、ここでのトリミングに役立つオープンソースのリポジトリがたくさん表示されます。

于 2012-07-06T14:28:16.297 に答える