0

私は彼らがカメラを使用するアプリで働いています。そこで、独自のボタンを使用してオーバーレイを実装しました。しかし今、私には問題があります。私の問題は、彼が古い Photo Booth のような特定の領域で写真を作成する UIImagePicker をどのように編集できるかです。

このアプリでは、Person から写真を作成し、それらに新しい外観を与えることができます。特定の領域で写真を作成すると、結果は iPhone の全画面写真になります。

誰でも私を助けてもらえますか?

ありがとう!

アップデート:

私はこのコードを持っています:

- (IBAction)getPicture:(id)sender 
    {

    customCamera *cameraController = [[customCamera alloc] init];
    cameraController.sourceType =UIImagePickerControllerSourceTypeCamera;
    cameraController.delegate = self;

    cameraController.showsCameraControls = NO;
    cameraController.navigationBarHidden = YES;
    cameraController.toolbarHidden = YES;


    UIImageView *cameraOverlayView = [[UIImageView alloc] initWithImage:[UIImage   imageNamed:@"Ausschnitt2.png"]];

    cameraOverlayView.alpha = 1.0f;

    cameraController.cameraOverlayView = cameraOverlayView;

しかし、これはオーバーレイ用です。写真を撮るとオーバーレイが表示されますが、写真が記録されると、オーバーレイ付きの写真ではなく、元の iPhone 画面が表示されます。私の質問は、写真ブースや画面に他のオブジェクトがある人のような写真をどのように作成できるかです。

4

1 に答える 1

0

画像を変更するには、

  • 画像の個々のピクセルにアクセスし、必要に応じて処理する、または
  • CoreGraphics を使用して画像をレンダリングし、オーバーレイまたはその上に効果を描画する、または
  • -renderInContext を使用して、画面に表示されているものを取得し、そこから UIImage を作成します (ただし、これは、オーバーレイの解像度と下のカメラ画像に制限されることを意味します)。

Quartz と CoreGraphics を読んで、 RosyWriter のような Apple のサイトを見てください。RosyWriterは、画像を取り、その上にグラフィックスを配置します。

編集:これは、画像の上に丸みを帯びた四角形を描画し、その四角形内にテキストを描画する方法を示す簡単で汚いコードです。これは、基礎となる UIImage のメソッドです。

    UIGraphicsBeginImageContext(self.size);
[self drawInRect:CGRectMake(0, 0, self.size.width, self.size.height)];
[[UIColor colorWithWhite:0.0 alpha:.5] set];
UIBezierPath* path = [UIBezierPath bezierPathWithRoundedRect:roundedRect cornerRadius:10.0];
[path fill];
[textColor set];

[textString drawInRect:textRect
              withFont:font
         lineBreakMode:NSLineBreakByTruncatingTail
             alignment:NSTextAlignmentLeft];

UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();
于 2013-11-01T07:38:20.607 に答える