1

私はカメラアプリに取り組んでいます。UIImagePickerControllerを使用して画像をキャプチャしています。その後、画像をギャラリーに保存する前に、画像をトリミングしたいので、トリミングした画像をギャラリーに保存する必要があります。

私はグーグルで検索しました、私はギャラリーから画像を選んでからトリミングするためのサンプルを見つけましたが、これは私の要件ではありません。チュートリアル/サンプルコードを完了した場合は、リンクを投稿してください。よろしくお願いします。

4

2 に答える 2

1

pust isallowediting = yes; ギャラリーからキャプチャして選択した画像も編集できるように、ピッカー用

UIImagePickerController *picker = [[UIImagePickerController alloc] init];
    picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
    picker.delegate = self;
    picker.isallowediting = yes;  

これらがあなたを助けることを願っています

于 2013-03-08T06:38:39.293 に答える
0

imagePickerController メソッドでこのコードを使用して、キャプチャした画像をトリミングします。それは私にとってはうまくいっています。

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
    {
    [_imagePickerControllerInstance dismissModalViewControllerAnimated:YES];
        UIImage *_pickedAvatar = [info objectForKey:@"UIImagePickerControllerOriginalImage"];

       UIImage *croppedImage = [self cropImage:_pickedAvatar andFrame:CGRectMake(0, 0, 250, 250)];

   // croppedImage : U can use this cropped image for saving in gallery.

    }
- (UIImage *)cropImage:(UIImage*)image andFrame:(CGRect)rect {

   //Note : rec is nothing but the image frame which u want to crop exactly. 

    rect = CGRectMake(rect.origin.x*image.scale,
                      rect.origin.y*image.scale,
                      rect.size.width*image.scale,
                      rect.size.height*image.scale);

    CGImageRef imageRef = CGImageCreateWithImageInRect([image CGImage], rect);
    UIImage *result = [UIImage imageWithCGImage:imageRef
                                          scale:image.scale
                                    orientation:image.imageOrientation];
    CGImageRelease(imageRef);
    return result;
}

そうしないと

この質問を参照してください。

UIImageカテゴリを使用し、画像をトリミングする必要がある場所で使用します。

@implementation UIImage (Crop)
    - (UIImage *)crop:(CGRect)rect {

        rect = CGRectMake(rect.origin.x*self.scale, 
                          rect.origin.y*self.scale, 
                          rect.size.width*self.scale, 
                          rect.size.height*self.scale);       

        CGImageRef imageRef = CGImageCreateWithImageInRect([self CGImage], rect);
        UIImage *result = [UIImage imageWithCGImage:imageRef 
                                              scale:self.scale 
                                        orientation:self.imageOrientation]; 
        CGImageRelease(imageRef);
        return result;
    }

@end
于 2013-03-08T06:51:49.493 に答える