2012-12-04 10 views
7

habe ich versucht, diese zweimal mit zwei verschiedenen Anwendungen und ich bekomme die gleiche Sache. Ich habe eine eine UIImagePickerController Instanz setzen sich wie folgt zusammen:CGAffineTransformInvert: singuläre Matrix in UIImagePickerController mit showsCameraControls = NO

- (IBAction)addImage:(UIBarButtonItem *)sender { 


    if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) { 
     NSArray *mediaTypes = [UIImagePickerController availableMediaTypesForSourceType:UIImagePickerControllerSourceTypeCamera]; 
     if ([mediaTypes containsObject:(NSString *)kUTTypeImage]) { 
      UIImagePickerController *picker = [[UIImagePickerController alloc] init]; 
      picker.delegate = self; 
      picker.sourceType = UIImagePickerControllerSourceTypeCamera; 
      picker.mediaTypes = [NSArray arrayWithObject:(NSString *)kUTTypeImage]; 
      picker.allowsEditing = NO; 
      picker.showsCameraControls = NO; 

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

     }   
[..] 

} 

Dies war das zweite. In der ersten habe ich ein benutzerdefiniertes Overlay eingerichtet, um den Verschluss und andere Funktionen auszuführen. Alles läuft gut, aber ich halte einen Fehler auf der Konsole bekommen:

<Error>: CGAffineTransformInvert: singular matrix. 

Wenn ich die app laufen, jedes Mal wenn ich drehen (oder bewegen, um die Signale eine drehen) das Gerät, während die Kamera auf {something happens here} ist. Ich habe es auf meinem iPhone 4 und iPad Mini mit den gleichen Ergebnissen versucht. Nach viel Graben fand ich dies in dem Fall geschehen nur, wenn

picker.showsCameraControls = NO; 

Wenn ich

setzen
picker.showsCameraControls = YES; 

Dann bekomme ich keine Meldung (obwohl meine benutzerdefinierte Overlay auch versteckt). Stellen Sie sicher, dass es nicht das benutzerdefinierte Overlay selbst war, habe ich versucht, das auszulassen, und es gibt immer noch die Fehlermeldung.

Hat jemand irgendwelche Ideen, was ich tun sollte?

+0

Excellent ersten Beitrag und begrüßen zu Stapelüberlauf. Wenn ich darf, werde ich zwei Zeilen Ihres Beitrags bearbeiten, und Sie können auf den Bearbeitungslink unter Ihrem Beitrag klicken, um ihn selbst weiter zu bearbeiten, oder Sie können auf den Zeitstempel oberhalb meiner Bearbeitung klicken, um die Änderungen auf der Website zu überprüfen Post. Entschuldigung, keine anderen konstruktiven Kommentare zum Beitrag. Ich würde Sie ermutigen, etwas anstelle von "etwas passiert hier" hinzuzufügen, weil mir nicht ganz klar war, was passiert, wenn Sie das Telefon bewegen. – jcolebrand

+0

Ich habe das gleiche Problem auf iOS 5 iPhone 4 mit picker.showsCameraControls = NO ;. Es tritt nur auf, wenn ich ein Bild von - imagePickerController speichern: didFinishPickingMediaWithInfo: in JPEG (nicht PNG). Wenn ich es in PNG speichere, wird es irgendwie gedreht. –

+0

@jcolebrand: Hallo ... ich auch das gleiche Problem bekommen .. Kannst du mir helfen, dieses Problem zu lösen? –

Antwort

1

Ich glaube, es weitgehend gutartig zu sein als Apples eigener PhotoPicker Beispielcode diese Warnung erzeugt. Rotation hat mit Matrizen zu tun, und während ich nicht sicher bin, welche Matrix gerade rotiert wird, wird es als eine mathematische Verletzung betrachtet, Operationen an Matrizen mit einer Determinante von Null durchzuführen (ähnlich der Division durch Null). Eine solche Matrix ist nicht umkehrbar oder 'Singular':

http://en.wikipedia.org/wiki/Rotation_matrix

http://en.wikipedia.org/wiki/Determinant

http://en.wikipedia.org/wiki/Singular_matrix#singular

Verwandte Themen