Probleme lors de la sauvegarde d'une image

Bonjour ,



dans mon application j'ai une imageView en fond (img1) ) et par le picker , j'ajoute une photo de la gallerie photo de l'iphone (img_picked) pour en faire qu'une image  , puis la sauvegarder.


Mon problème est que au moment ou je sauvegarde l'image , img_picked n'est pas au meme endroit que dans l'application , elle est décalée (dans la photo sauvegardée).


 


vous pouvez le voir ici :


dans l'application juste avant d'appuyer sur le bouton save : http://hpics.li/a39d744


juste apres ca , dans la galerie du simulateur : http://hpics.li/39ccbd8


 


voici mon code :



//picker

-(IBAction)addphoto:(id)sender {


UIImagePickerController * picker = [[UIImagePickerController alloc] init];

picker.delegate = self;

picker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;

[self presentViewController:picker animated:YES completion:nil];



}



//void

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {


[picker dismissViewControllerAnimated:YES completion:nil];

img_picked.image = [info objectForKey:@UIImagePickerControllerOriginalImage];


if (UIGraphicsBeginImageContextWithOptions != NULL) {

UIGraphicsBeginImageContextWithOptions(img1.image.size, NO, 0.0);

}

else {

UIGraphicsBeginImageContext(img1.image.size);

}

[img1.image drawInRect:CGRectMake(0, 0, img1.image.size.width, img1.image.size.height)];

[img_picked.image drawInRect:CGRectMake(img_picked.frame.origin.x ,img_picked.frame.origin.y , img_picked.frame.size.width, img_picked.frame.size.height)];

imagetoBesaved = UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();

}

//sauvegarde

-(IBAction)save:(id)sender {

UIImageWriteToSavedPhotosAlbum(imagetoBesaved, nil, nil, nil);


}


en esperant que vous ayez compris mon probleme , merci d'avance !


Réponses

  • Eric P.Eric P. Membre
    septembre 2014 modifié #2

    Avant le 1er drawInRect, ajoute :



    CGContextRef cxt = UIGraphicsGetCurrentContext();
    UIGraphicsPushContext(cxt);

    Et après le second, ajoute :



    UIGraphicsPopContext();

    Sinon, vérifie les dimensions des images, pour voir lesquelles ne sont pas bonnes.


Connectez-vous ou Inscrivez-vous pour répondre.