我在iOS 3.1.3 iPhone上测试我的iPhone应用程序.我使用以下方法选择/捕获图像UIImagePickerController:
UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
[imagePicker setSourceType:UIImagePickerControllerSourceTypeCamera];
[imagePicker setDelegate:self];
[self.navigationController presentModalViewController:imagePicker animated:YES];
[imagePicker release];
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
self.image = [info objectForKey:UIImagePickerControllerOriginalImage];
imageView.image = self.image;
[self.navigationController dismissModalViewControllerAnimated:YES];
submitButton.enabled = YES;
}
Run Code Online (Sandbox Code Playgroud)
然后我在某个时候使用ASI类将它发送到我的Web服务器:
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:[NSURL URLWithString:@"http://example.com/myscript.php"]];
[request setDelegate:self];
[request setStringEncoding:NSUTF8StringEncoding];
[request setShouldContinueWhenAppEntersBackground:YES];
//other post keys/values
[request setFile:UIImageJPEGRepresentation(self.image, 100.0f) withFileName:[NSString stringWithFormat:@"%d.jpg", [[NSDate date] timeIntervalSinceNow]] andContentType:@"image/jpg" forKey:@"imageFile"];
[request startAsynchronous];
Run Code Online (Sandbox Code Playgroud)
问题:当我用iphone拍照同时保持它的风景时,图像会上传到服务器并按照你的预期进行查看.当拍摄手机拍照时,图像会被上传并在旋转90度时被观看.
我的应用程序设置为仅在纵向模式下工作(颠倒和常规).
如何在上传后使图像始终显示正确的方向?
UIImageView中显示的图像看起来是正确的(在拍照后直接显示),但在服务器上查看则另有说明.
我想从UIImagePickerController加载图像,然后将选定的照片保存到我的应用程序的文档目录中.
UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];
NSData *data1 = UIImagePNGRepresentation(image);
NSString *fileName = "1.png";
NSString *path = //get Document path, then add fileName
BOOL succ = [data1 writeToFile:path atomically:YES];
Run Code Online (Sandbox Code Playgroud)
但是在我将图像保存到我的文档后,我发现,图像旋转了90度,然后我将方法UIImagePNGRepresentation更改为UIImageJPEGRepresentation,这次没关系,有谁知道问题是什么?
在我的仅横向iPhone应用程序中,我启动了一个UIImagePickerController来拍摄照片,但是从相机显示的实时图像是纵向的,周围有空白区域.图像旋转.
按下相机按钮后,预览非常混乱,大部分预览关闭屏幕,并且视图未正确对齐.
Apple承认这是缺陷,并正在努力.
我的问题是,是否有人有一个解决方法(合法或非法),这将使我现在能够正常工作.我不会通过非法修复发布到App Store,但我会有一个更好的应用程序用于用户测试 - 目前相机在景观中几乎无法使用.
如果可以的话,我会附上一个简单的测试项目和图像.
编辑 - 只是为了澄清,我得到的图像是正确的风景.我希望相机和预览UI看起来正确!
1- 一些同事(使用android工作室的Android开发人员)在我的手机上测试他的应用程序时遇到了问题(这是一个与android 6.0.1相关的问题),他面临的问题是当他拿一个来自画廊的图像可以和他一起工作,但是当从相机拍摄照片时它没有显示,他怀疑他在手机上保存的图像没有得到保存,他怀疑这是一个许可问题,对他来说是有效的在星系上而不是在nexus上.
2- 同样的事情发生在我的团结中我买了一个过去常常在我的手机上工作的插件(当我拍摄相机照片时),现在我更新后它不再拍摄图像,我的意思是我走了相机并返回应用程序,而不像以前那样加载到视图中.
这是logcat显示的内容
--------- beginning of main
02-07 16:36:10.272 203-813/? D/audio_hw_primary? out_set_parameters: enter: usecase(1: low-latency-playback) kvpairs: routing=2
02-07 16:36:10.282 203-813/? D/audio_hw_primary? select_devices: out_snd_device(2: speaker) in_snd_device(0: none)
02-07 16:36:10.282 203-813/? D/msm8974_platform? platform_send_audio_calibration: sending audio calibration for snd_device(2) acdb_id(15)
02-07 16:36:10.282 203-813/? D/audio_hw_primary? enable_snd_device: snd_device(2: speaker)
02-07 16:36:10.284 203-813/? D/audio_hw_primary? enable_audio_route: apply and update mixer path: low-latency-playback
02-07 16:36:10.289 24484-24484/? W/CAM_ActivityCloser? WARNING: Activity was artificially finished: CameraActivityController was closed.
02-07 16:36:10.302 24484-24484/? I/CAM_2RsmeActvtyFltr? START onPause: Activity = com.android.camera.util.activity.DoubleOnResumeActivityFilter@d1e256d
02-07 …Run Code Online (Sandbox Code Playgroud) 我以编程方式在我的应用程序中从相机中获取了图像.它已被很好地取出,但当我转移到另一个视图并在那时解雇该视图时,我的图像自动旋转-90度.
并且这种变化仅在我移动后第一次发生时没有发生变化意味着图像保持在-90度状态,这只有在我从相机捕获图像时才会发生.当我从照片库中获取图像时,没有发现任何问题.
以下图片是我的原始图片

这是旋转的图像

我不知道为什么会发生这种变化.
我正在横向和纵向模式上传从iphone点击的图像.具有横向模式的图像上传得很好,但问题在于以纵向模式上传的图像.它们旋转了90度.
其他具有纵向模式的图像(不是从iPhone点击)工作正常.
知道为什么会这样吗?
我遇到一个问题,.builtInDualCamera当isFilteringEnabled = true
这是我的代码:
fileprivate let session = AVCaptureSession()
fileprivate let meta = AVCaptureMetadataOutput()
fileprivate let video = AVCaptureVideoDataOutput()
fileprivate let depth = AVCaptureDepthDataOutput()
fileprivate let camera: AVCaptureDevice
fileprivate let input: AVCaptureDeviceInput
fileprivate let synchronizer: AVCaptureDataOutputSynchronizer
init(delegate: CaptureSessionDelegate?) throws {
self.delegate = delegate
session.sessionPreset = .vga640x480
// Setup Camera Input
let discovery = AVCaptureDevice.DiscoverySession(deviceTypes: [.builtInDualCamera], mediaType: .video, position: .unspecified)
if let device = discovery.devices.first {
camera = device
} else {
throw SessionError.CameraNotAvailable("Unable to load camera")
} …Run Code Online (Sandbox Code Playgroud) 我一直试图将相机图像从iPhone上传到我的网络服务器,但有些图像是如何在病房后改变它的方向.这只发生在相机图像上,而不是从我的机器上传到设备的简单图像.
以下是代码:
NSData *imgdataRepresentation = UIImageJPEGRepresentation(imgTemp, 0.5);
///////**********************************************
// setting up the URL to post to
NSString *addPhotoURL = [NSString stringWithFormat:@"%@%@%@",HTTP_HOST,ADD_PHOTO_URL,[userInfo.userDetail objectForKey:@"id"]];
// setting up the request object now
NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];
[request setURL:[NSURL URLWithString:addPhotoURL]];
[request setHTTPMethod:@"POST"];
/*
add some header info now
we always need a boundary when we post a file
also we need to set the content type
You might want to generate a random boundary.. this is just the same
as my …Run Code Online (Sandbox Code Playgroud) iphone ×6
cocoa-touch ×3
ios ×3
camera ×2
image ×2
android ×1
avdepthdata ×1
ios12 ×1
objective-c ×1
orientation ×1
swift ×1
uiimage ×1
upload ×1
xcode ×1