HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – 使用UIIImagePicker的CGAffineTransform缩放UIImage并保存到解析SDK大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用以下代码来扩展我的UI ImagePickerController.

CGAffineTransform translate = CGAffineTransformMakeTranslation(0.0,71.0); //This slots the preview exactly in the middle of the screen by moving it down 71 points
    self.imagePicker.cameraViewTransform = translate;
    CGAffineTransform scale = CGAffineTransformScale(translate,1.333333,1.333333);
    self.imagePicker.cameraViewTransform = scale;

然后我拍摄照片并将其呈现在UIImageView中

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {

    [picker dismissviewControllerAnimated:NO completion:NULL];

    _imageTaken = nil;
    _imageTaken = [info objectForKey:UIImagePickerControllerEditedImage];
    if(_imageTaken==nil)
    {
        _imageTaken = [info objectForKey:UIImagePickerControllerOriginalImage];
    }
    if(_imageTaken==nil)
    {
        _imageTaken = [info objectForKey:UIImagePickerControllerCropRect];
    }

    [_imageTakenView setContentMode:UIViewContentModeScaleAspectFill];

    if (_selfiE) {
        UIImage * flippedImage = [UIImage imageWithCGImage:_imageTaken.CGImage scale:_imageTaken.scale orientation:UIImageOrientationLeftMirrored];
        _imageTaken = flippedImage;
    }

    _imageTakenView.image = _imageTaken;
}

到目前为止一切都很好.然后我通过将图像转换为NSData将图像发送到我的数据库

_imageData = [[NSData alloc] init];
    _imageData = UIImageJPEGRepresentation(_image,.1);

当我从服务器加载数据并将其呈现在相同大小的另一个UIImageView中时,我设置了相同的宽高比:

[_imageViewToShow setContentMode:UIViewContentModeScaleAspectFill];

但是图像看起来很紊乱(水平压扁).关于为什么会这样的任何想法?

将uIImage转换为NSData&保存

_imageData = UIImageJPEGRepresentation(_image,.1);
PFFile *imageFile = [PFFile fileWithName:@"image.png" data:_imageData];
newmessage[@"image"] = imageFile;

问题:

我重新下载数据时,UIImage会出现挤压.当我查看数据库中的图像时,似乎很好.不知道为什么会发生这种情况……

之前和之后的图像:

解决方法

上传之前尝试规范化图像的方向.这样即使元数据丢失,图像也能正常工作

这是一个类别:

UIImage OrientationFix.h

@interface UIImage (OrientationFiX)

- (UIImage*)imageByNormalizingOrientation;

@end

UIImage OrientationFix.m

@implementation UIImage (OrientationFiX)

- (UIImage*)imageByNormalizingOrientation {
    if (self.imageOrientation == UIImageOrientationUp)
        return self;

    CGSize size = self.size;
    UIGraphicsBeginImageContextWithOptions(size,NO,self.scalE);
    [self drawInRect:(CGRect){{0,0},sizE}];
    UIImage* normalizedImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

    return normalizedImage;
}

@end

你只需要打电话:

_imageTaken = [flippedImage normalizedImage];
@H_696_61@

大佬总结

以上是大佬教程为你收集整理的ios – 使用UIIImagePicker的CGAffineTransform缩放UIImage并保存到解析SDK全部内容,希望文章能够帮你解决ios – 使用UIIImagePicker的CGAffineTransform缩放UIImage并保存到解析SDK所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。