Ich baue eine App mit dem UIImagePickerController und einem benutzerdefinierten Overlay. Was ist, ist der Vergleich zweier Bilder (vor dem Bild und nach dem Bild). Ich verwende ein benutzerdefiniertes Overlay mit dem Vorher-Bild, wenn ich das Nachher-Foto mache (siehe Bild im Anhang).UIImagePickerController Kameraansicht Größe Problem
iPhone 5 - ios7
iPhone 4 - iOS7 (Bei der Aufnahme des Bildes)
iPhone 4 - iOS 7 (Nach der Aufnahme des Fotos)
Siehe Größenunterschied zwischen iPhone 4 und iPhone 5 Kameraansicht.
Anwendung funktioniert gut mit iPhone 5 Bildschirmgröße (Beide ios 6 und ios7). Aber iPhone 4/4s Bildschirmgröße, funktioniert es NUR mit iOS6. Das Problem ist mit dem iPhone 4/4s (nur iOS 7), Kamera-Ansicht nimmt den ganzen Bildschirm. Das bedeutet, können Sie iPhone 5 Kamera-Ansicht Größe ~ 320 * 427 (iOS 6 und iOS 7) iPhone 4 Kamera-Ansicht Größe ~ 320 * 427 (iOS 6) ABER iPhone 4 Kamera-Ansicht Größe ~ 320 * 480 merken (iOS 7)
Nachdem das Bild aufgenommen wurde, passte es zu der tatsächlichen Größe von 320 * 427. Wegen dieses Problems kann ich nicht vor dem Bild mit der Kamera auf dem iPhone 4 iOS7 ausrichten (weil es zu 320 * 480 kreischt).
Hat jemand dieses seltsame Problem konfrontiert. Ich habe fast alles versucht, aber KEIN Glück. Irgendwelche Ideen bitte ???
Dies ist mein Stückcode zum Laden der Kameraansicht mit benutzerdefinierten vor Foto-Overlay.
- (void)loadCameraWithImage
{
if (!isLoadedOnce)
{
isLoadedOnce = YES;
UIImagePickerController *cameraView = [[UIImagePickerController alloc] init];
cameraView.sourceType = UIImagePickerControllerSourceTypeCamera;
cameraView.wantsFullScreenLayout = NO;
if ([self respondsToSelector:@selector(setEdgesForExtendedLayout:)]) {
[self setEdgesForExtendedLayout:UIRectEdgeNone];
}
// crop before image
UIImage *imgTmpCropped = [self imageByCropping:imgBefore toRect:CGRectMake(0, 0, imgBefore.size.width/2, imgBefore.size.height)];
UIImage *overleyImage = [[UIImage alloc] initWithCGImage: imgTmpCropped.CGImage
scale: [UIScreen mainScreen].scale
orientation: UIImageOrientationDownMirrored];
UIImageView *crosshairView;
UIImageView *beforeView;
CGFloat screenHieght = [UIScreen mainScreen].bounds.size.height;
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad){
//overleyImage = [UIImage imageNamed:@"overlay_ipad.png"];
crosshairView = [[UIImageView alloc] initWithImage:overleyImage];
crosshairView.frame = CGRectMake(0, 0, 768, 1024);
[crosshairView setUserInteractionEnabled:YES];
crosshairView.backgroundColor = [UIColor clearColor];
beforeView = [[UIImageView alloc] initWithImage:overleyImage];
beforeView.frame = CGRectMake(0, 0, 384, 1024);
beforeView.alpha = 0.5;
beforeView.contentMode = UIViewContentModeScaleAspectFill;
}
else {
//overleyImage = [UIImage imageNamed:@"overleyImageAfter.png"];
crosshairView = [[UIImageView alloc] init];
beforeView = [[UIImageView alloc] initWithImage:overleyImage];
if(screenHieght>500){
crosshairView.frame = CGRectMake(0, 60, 320, 480);
beforeView.frame = CGRectMake(0, 70, 160, 427);
}
else{
if([[[UIDevice currentDevice] systemVersion] floatValue] <7.0){
crosshairView.frame = CGRectMake(0, 0, 320, 480);
beforeView.frame = CGRectMake(0, 0, 160, 427);
}
else{
crosshairView.frame = CGRectMake(0, 0, 320, 480);
beforeView.frame = CGRectMake(0, 0, 160, 480);
}
}
[crosshairView setUserInteractionEnabled:YES];
crosshairView.backgroundColor = [UIColor clearColor];
beforeView.alpha = 0.5;
beforeView.contentMode = UIViewContentModeScaleToFill;
}
//[crosshairView addSubview:beforeView];
//set our custom overlay view
cameraView.cameraOverlayView = beforeView;
cameraView.delegate = (id)self;
cameraView.showsCameraControls = YES;
cameraView.navigationBarHidden = YES;
cameraView.toolbarHidden = YES;
[cameraView setHidesBottomBarWhenPushed:YES];
[self.view.window.rootViewController presentViewController:cameraView animated:YES completion:nil];
isLoadedOnce = NO;
}
}
Konnten Sie jemals eine Entschließung für dieses finden? Ich habe ein ähnliches Problem. –
Ich kann das Problem erklären. Aber hast du irgendeine Lösung gefunden? Mit dem iPhone 4 (iOS 7): Größe des Bildes: {1936, 2592} ist dies Sie UIImage von Info-Wörterbuch mit "UIImagePickerControllerOriginalImage" aber Ansicht/Fenster-Größe ist wählen: {320, 416} Skala: 2. Problem ist Breite 6,05 mal und Höhe ist 6,23 fast. Wenn Sie dieses Bild sehen, wird es verzerrt. Wenn Sie etwas gefunden haben, können Sie bitte teilen? Prost –
Leider keine Lösung. In meinem Projekt musste ich mit dieser Einschränkung gehen – sajaz