IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Objective-C Discussion :

Delegate et imagePickerController


Sujet :

Objective-C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 142
    Par défaut Delegate et imagePickerController
    Bonjour à tous,

    je pense qu'il n'est pas nécessaire de vous dire que je viens de commencer le développement parce que vous allez vite vous rendre compte

    Comme premier projet après bien sur avoir lu pas mal de cours de base je me lance dans le développement d'une application iPhone.

    Principe de l'application :

    1- Démarre avec une screenSplash : OK
    2- Après 2 seconde je fais appel al la camera avec un overlayview : OK
    3- Apres 5 secondes je déclenche la prise de photo automatiquement: KO

    Vues de l'application :

    Vue de base et une vueOverlay qui contient une image sous forme de cible

    mon problème c'est que je ne sait pas trop ou mettre la fonction de capture automatique pour qu'elle envoi l'image au premier ecran sans passer par un boutton

    J'ai trouvé pas mal d'exemple (apple inclus) mais tous propose un bouton au niveau de l'écran OverlayView

    voici le code la vue de base:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    #import "baseViewController.h"
    #import "OverlayViewController.h"
    //transform values for full screen support
    #define CAMERA_TRANSFORM_X 1
    #define CAMERA_TRANSFORM_Y 1.12412
     
    //iphone screen dimensions
    #define SCREEN_WIDTH  320
    #define SCREEN_HEIGTH 480
    @interface softwaysViewController ()
     
    @end
     
    @implementation softwaysViewController
    //@synthesize imageView, OverlayViewController, capturedImages;
    - (void)viewDidLoad
    {
        [super viewDidLoad];
     
    	// Do any additional setup after loading the view, typically from a nib.
        [self performSelector:@selector(delay1) withObject:nil afterDelay:2];
        //create an overlay view instance
     
     
    }
     
    - (void)viewDidUnload
    {
        [super viewDidUnload];
        // Release any retained subviews of the main view.
    }
     
    - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
    {
        if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
            return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
        } else {
            return YES;
        }
    }
     
     
     
    // lancer la camera a
    -(void) delay1
    {
     
        OverlayViewController *overlay = [[OverlayViewController alloc]
                                          initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGTH)];
     
      overlayViewController.delegate = self;
     
     
        //create a new image picker instance
    	UIImagePickerController *picker = 
    	[[UIImagePickerController alloc] init];
     
    	//set source to video!
    	picker.sourceType = UIImagePickerControllerSourceTypeCamera;
     
    	//hide all controls
    	picker.showsCameraControls = NO;
    	picker.navigationBarHidden = YES;
    	picker.toolbarHidden = YES;
    	//make the video preview full size
    	picker.wantsFullScreenLayout = YES;
    	picker.cameraViewTransform =
    	CGAffineTransformScale(picker.cameraViewTransform,
    						   CAMERA_TRANSFORM_X,
    						   CAMERA_TRANSFORM_Y);
     
        picker.cameraViewTransform = CGAffineTransformMakeRotation(3.141592654);
    	//set our custom overlay view
    	picker.cameraOverlayView = overlay;
     
    	//show picker
    	[self presentModalViewController:picker animated:YES];	
     
       //  [self.imageView takePicture];
         //[self performSelector:@selector(  ) withObject:nil afterDelay:2];
     
     
    }
     
     
    // as a delegate we are being told a picture was taken
    - (void)didTakePicture:(UIImage *)picture
    {
        [self.capturedImages addObject:picture];
    }
     
    -(void) photoPrise: (UIImage *)picture
    {
        [self.imageView setImage:picture];
     
    }
     
    @end
    voici le code la vue overlay:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    #import "OverlayViewController.h"
     
    @interface OverlayViewController ()
     
    @end
     
    @implementation OverlayViewController
     
    @synthesize delegate,  imagePickerController;
     
     
    - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
    {
        return (interfaceOrientation == UIInterfaceOrientationPortrait);
    }
     
     
    - (id)initWithFrame:(CGRect)frame {
        if (self = [super initWithFrame:frame]) {
            //clear the background color of the overlay
            self.opaque = NO;
            self.backgroundColor = [UIColor clearColor];
     
            //load an image to show in the overlay
            UIImage *searcher = [UIImage imageNamed:@"crosshair.png"];
            UIImageView *searcherView = [[UIImageView alloc]
                                         initWithImage:searcher];
            searcherView.frame = CGRectMake(30, 100, 260, 200);
            [self addSubview:searcherView];
           // [searcherView release];
     
     
            [self performSelector:@selector(takePhoto:) withObject:nil afterDelay:5];
     
            //add a simple button to the overview
            //with no functionality at the moment
         //  UIButton *button = [UIButton
           //                    buttonWithType:UIButtonTypeRoundedRect];
        //  [button setTitle:@"Scan Now" forState:UIControlStateNormal];
        //  button.frame = CGRectMake(0, 430, 320, 40);
         // [self addSubview:button];
     
     
        }
        return self;
    }
     
     
    // gets called by our repettive timer to take a picture
    - (void)takePhoto:(UIImagePickerController *)picker 
    {
     
              [self.imagePickerController takePicture];
     
     
        UIImage *image = [imagePickerController valueForKey:UIImagePickerControllerOriginalImage];
     
        // give the taken picture to our delegate
     
            [self.delegate prisePhoto:image];
     
     
     
    }
     
    // gets called by our repettive timer to take a picture
    - (void)takePhotoBoutton:(UIImagePickerController *)picker 
    {
     
        [self.imagePickerController takePicture];
     
        valueForKey:UIImagePickerControllerOriginalImage];
        UIImage *image = [imagePickerController valueForKey:UIImagePickerControllerOriginalImage];
     
        // give the taken picture to our delegate
        if (self.delegate)
            [self.delegate prisePhoto:image];
     
     
     
     
     
    }
    @end

    [self performSelector:@selector(takePhoto withObject:nil afterDelay:5];
    c'est cette ligne qui ne se déclenche pas au bout de 5 seconde !!

    merci pour votre aide

  2. #2
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 142
    Par défaut
    pour résumer :

    Il faut que je trouve ou est ce que je lance la capture de photo..

    y a t'il un évènement qui me permet de savoir que le picker est actionné(entrain de filmer) pour déclencher la capture?

    tous les exemples que je trouve mettent le code de capture derrière l’évènement du bouton et non pas de façon automatique.

    merci encore

Discussions similaires

  1. [VB.NET][WINFORMS] Gestion de delegate
    Par Misterburma dans le forum Windows Forms
    Réponses: 3
    Dernier message: 12/01/2006, 16h27
  2. [C# 2.0][Form]Comment utiliser les Delegates & Threading
    Par Tips dans le forum Windows Forms
    Réponses: 8
    Dernier message: 08/01/2006, 14h22
  3. Réponses: 6
    Dernier message: 02/12/2005, 12h28
  4. [C#]Thread, event/delegate et Form
    Par doccpu dans le forum Windows Forms
    Réponses: 28
    Dernier message: 01/08/2005, 18h35
  5. Delegation mis en application
    Par s3r3nity dans le forum C++
    Réponses: 19
    Dernier message: 16/05/2005, 01h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo