我正在使用此处链接的库,使用以下代码调整相机拍摄的图像的大小:

    UIImage *image = [[UIImage alloc] initWithData:imageData];

    CGFloat squareLength = SC_APP_SIZE.width;
    CGFloat headHeight = _previewLayer.bounds.size.height - squareLength;//_previewLayer的frame是(0, 44, 320, 320 + 44)
    CGSize size = CGSizeMake(squareLength * 2, squareLength * 2);

    UIImage *scaledImage = [image resizedImageWithContentMode:UIViewContentModeScaleAspectFill bounds:size interpolationQuality:kCGInterpolationHigh];

    CGRect cropFrame = CGRectMake((scaledImage.size.width - size.width) / 2, (scaledImage.size.height - size.height) / 2 + headHeight, size.width, size.height);

    UIImage *croppedImage = [scaledImage croppedImage:cropFrame];

    UIDeviceOrientation orientation = [UIDevice currentDevice].orientation;
    if (orientation != UIDeviceOrientationPortrait) {
        CGFloat degree = 0;
        if (orientation == UIDeviceOrientationPortraitUpsideDown) {
            degree = 180;// M_PI;
        } else if (orientation == UIDeviceOrientationLandscapeLeft) {
            degree = -90;// -M_PI_2;
        } else if (orientation == UIDeviceOrientationLandscapeRight) {
            degree = 90;// M_PI_2;
        }
        croppedImage = [croppedImage rotatedByDegrees:degree];
    }

当通过相机捕获图像时,无论后置摄像头还是前置摄像头,该代码均有效。

当我使用相同的代码(除了获取图像的Exif方向,而不是设备方向),为原先摄像机捕捉的,而是通过的iOS相机胶卷访问一个形象问题发生。

案例:当BACK相机以横向方式捕获相机胶卷中保存的图像时。 实际上,图像具有exif方向,表明它是在纵向模式下捕获的...但是它仍然是宽屏图像。

代码不成比例地裁剪图像,在边缘留下黑色的空白区域。 我不知道是什么问题。 有人可以指出我正确的方向吗?

  ask by Richard Tiutiun translate from so

本文未有回复,本站智能推荐:

1回复

iOS-如何使用GPUImageStillCamera捕获图像:分辨率3840x2160? [重复]

这个问题已经在这里有了答案: 为不同的设备选择正确的AVCaptureSessionPreset 2个答案 我需要使用GPUImageStillCamera捕获最高分辨率的图像,我尝试了以下属性:AVCaptureSessionPresetPhoto,AVCaptu
1回复

ios imagepickerview取消按钮功能

我的“取消”按钮反正拉起相机胶卷。 我该如何删除。
1回复

用户在应用程序中单击图像时获取图像名称

我目前正在一个项目中,在该项目中,我使用相机单击图像,或者让用户从图片库中选择图像并在uiimageview上设置图像。 当用户从图库中选择图像名称时,我成功获得了图像名称,但是当用户在应用程序内使用相机单击时却无法获得图像名称。如何实现? 我必须使用网络服务发送带有图像名称的图像。
1回复

来自相机的原始图像数据

我一直在搜索这个论坛,但我找不到我真正需要的东西。 我想从相机获取原始图像数据。 到目前为止,我试图从该方法中获取captureStillImageAsynchronouslyFromConnection:completionHandler:的数据captureStillImageAsync
4回复

iOS - 如何实现裁剪图像,如默认相册?

iPhone相册中的默认裁剪功能 有谁知道如何实现这个? 我想在点按“ 使用”按钮之前裁剪它。
1回复

使用相机iOS捕获和自定义裁剪图像

我正在使用UIImagePickerController捕获图像。 现在我要裁剪图像。 我正在使用UIImagePicker cameraOverlayView方法,但不允许移动裁剪视图。 我希望我的裁剪视图应可移动且可调整大小,以便用户可以选择要使用的图像部分。 我正在使用以下代码:
2回复

使用相机会话拍摄的裁剪图像

我正在尝试裁剪相机会话捕获的具有特定兴趣的图像。 为了找到比例裁剪矩形,我正在使用previewLayer.metadataOutputRectConverted方法。 但是裁剪后我得到了错误的比率。 调试示例: 如您所见,我期望裁剪的图像比例为rectOfInteres
4回复

如何使用Swift选择图像的一部分,裁剪并保存?

我正在尝试使用Swift创建一个iOS应用程序来捕获图像,并让用户保存图像的选定部分。 在许多基于凸轮的应用程序中,我注意到提供了一个矩形框架,让用户选择所需的部分。 这涉及滑动矩形的边缘或移动角落以适合所需的区域。 你能否指导我如何实现可移动的矩形以及如何只保存那部分图像?
1回复

在iOS中使用我自己的自定义图像保存图像

我想在iOS 5中使用自己的图像名称将图像保存到相机胶卷中。我正在使用AV Foundation访问相机功能。请提供可能的解决方案帮助我。
2回复

如何使用iPhone相机检测图像?

我正在尝试使用iPhone / iPad相机检测巧克力包装纸的图像。 我已经使用avcapture从视频中获取了图像帧。 但是我不知道如何检测图像的特定部分? 注意:-我要提到的特定部分是一条粉红丝带,它将始终是相同的。 我可以匹配图像吗? 如果是,怎么办? 还是我应该获取位图像