2011-06-13 18 views
6

Şu anda kullanıcının bir fotoğrafını çektiği veya bir albümden seçtiği bir iphone uygulaması yapıyorum, ardından resmin üzerine bir yer paylaşımı yerleştirilir. Kullanıcı daha sonra görüntüyü ölçekleyebilir, döndürebilir ve kaydedebilir. Şu anda, fotoğraf çekebilir veya albüm için bir tane seçebilirim. Yerleşime gelince, UIImageView kullandım ve Arayüz oluşturucudaki hiyerarşinin üstüne yerleştirdim. kamera için, ben bu kodu kullanıyorum: Bu alınıyormuş sonraFotoğrafı çektikten sonra düzenleyin

-(IBAction)getPhoto:(id)sender { 

// Create an image picker controller 
UIImagePickerController * imagePicker = [[UIImagePickerController alloc] init]; 


if((UIButton *) sender == choosePhotoBtn) { 
    // Set source to photo albums 
    imagePicker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum; 
} 

else { 
    // Set source to camera 
    imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera; 
    imagePicker.showsCameraControls = YES; 
} 

// Delegate is self 
imagePicker.delegate = self; 

    // Allow editing of image 
    imagePicker.allowsEditing = YES; 

    // Show image picker 
    [self presentModalViewController:imagePicker animated: YES]; 
} 

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { 
// Dismiss modalviewcontroller 
[picker dismissModalViewControllerAnimated:YES]; 

// Displaying image to the imageView 
imageView.image = [info objectForKey:@"UIImagePickerControllerOriginalImage"]; 

// Access the uncropped image from info dictionary 
UIImage * image = [info objectForKey:@"UIImagePickerControllerOriginalImage"]; 


// Save Image 
UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil); 

[picker release]; 
} 

şu anda yaşıyorum sorun, fotoğraf düzenleme yapıyor. Bu

  1. seçin ya kamerayı kullanabilir veya

  2. kez seçilen Fotoğraf albümden elde ?: gibi davranmaya kamerayı nasıl özelleştirebilirim, bindirme görüntü Ben bir birine değişecek yüzüne bir "daire" koy ve fotoğrafın altında bir maske gibi olacak. Bu görünüm ayrıca tam ekranda düzenleyebilecektir. Bitirene kadar görüntüyü döndürebilir, ölçeklendirebilir ve taşıyabilirsiniz.

Bu bölümü el kitabında okudum ama nasıl kullanacağımı anlayamıyorum. Birisi bana doğru yöne işaret edebilir umarım.

Çok teşekkürler. -Hakimo

cevap

18

çok kodunuzu değişmez bir yolu vardır: Kayıt sonrası, lütfen değiştirin bu görüntüyü kullanmak istiyorsanız

- (IBAction)takePicture:(id)sender { 
UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init]; 
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) { 
    [imagePicker setSourceType:UIImagePickerControllerSourceTypeCamera]; 
} else { 
    [imagePicker setSourceType:UIImagePickerControllerSourceTypePhotoLibrary]; 
} 

[imagePicker setAllowsEditing:YES]; 
[imagePicker setDelegate:self]; 

//place image picker on the screen 
[self presentViewController:imagePicker animated:YES completion:nil]; 
} 

" UIImagePickerControllerOriginalImage "to" UIImagePickerControllerEditedImage ", işte bu kadar!

+0

OP, UIImagePickerControllerOriginalImage veya UIImagePickerControllerEditedImage kullanıyor? Ben seni anlamıyorum – inherithandle

+0

@inherithandle OP, "imagePickerController: didFinishPickingMediaWithInfo:" yöntemine UIImagePickerControllerDelegate yöntemini atıfta bulunur. 'Info' parametresi, UIImagePickerControllerOriginalImage ve UIImagePickerControllerEditedImage gibi Düzenleme Bilgileri Tuşlarını içeren bir NSDictionary içerir. –

0

Q1 için, kullanıcının bir albümden fotoğraf kullanmayı seçmesini veya yeni bir fotoğraf çekmesini sağlamak için bir eylem sayfası uygulamak mümkün mü? gibi bir şey olarak eylem sac fonksiyonu ile aşağıdaki:

-(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex { 
    if (buttonIndex == 0) { 
     picker = [[UIImagePickerController alloc]init]; 
     picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; 
     picker.delegate = self; 
     [self presentModalViewController:picker animated:YES]; 
     [picker release]; 
    } 

    else if (buttonIndex == 1) { 
     if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) { 
      picker = [[UIImagePickerController alloc]init]; 
      picker.sourceType = UIImagePickerControllerSourceTypeCamera; 
      picker.allowsEditing = YES; 
      picker.delegate = self; 
      [self presentModalViewController:picker animated:YES]; 
      [picker release]; 
     } 
     else { 
      UIAlertView *noCameraMsg = [[UIAlertView alloc] initWithTitle:@"no camera on this phone" message:@"" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil]; 
      [noCameraMsg show]; 
      [noCameraMsg release]; 

     } 


} 
+0

Yanıt Xcoder için teşekkürler. Daha önce hiç eylem sayfası kullanmamıştım, bu yüzden bir deneyeceğim. Eylem sayfaları ile yazdığım yazı arasında fark var mı? Albümlerden resim alabilir ve fotoğraf çekebilirim ancak düzenleme sayfasını nasıl özelleştireceğimi bilmiyorum. – hakimo

+0

Şimdi hangi eylem sayfalarının olduğunu görüyorum. Neredeyse UIAlertView gibi. Resmi albümün istemine kaydetmek için bunu kullanabilirim. Tekrar teşekkürler. – hakimo

İlgili konular