美文网首页
iOS 图片出现波纹问题

iOS 图片出现波纹问题

作者: Disery | 来源:发表于2023-07-31 15:23 被阅读0次

最近维护了一个别人的项目,使用UIImagePickerController拍照屏幕选择图片然后图片出现严重波纹,起初自己方向搞错了,一直以为是压缩图片压缩系数太小而导致的,调整到无损压缩还是没解决问题,然后我就又怀疑对象变成图片服务器进行了压缩,得知后台没有进行压缩,就又开始整理他的逻辑,UIImagePickerConroller 代理

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<UIImagePickerControllerInfoKey, id> *)info {

    UIImage *img = info[UIImagePickerControllerOriginalImage];    //获取原图

    self.currentPhoto= img;

}

接下来就是把Self.currentPhoto 传到本页面的UIImageView

接着跳转又将这个Self.currentPhoto传到下一页的UIimageView中

出现了问题  下一页的图片显示出现严重波纹

然后分析结果就是:当多个UIImageView不同的尺寸引用同一个UIImage时,会导致图片显示出现波纹情况,多个UIImageView不能使用同一个UIImage对象    

解决方案就是:将UIImage对象进行一个copy传递  这样UIImageView就不会重复拉伸UIImage对象   图像就不会出现失帧问题

还有一种可能是图片太大,UIImageView容器太小造成锯齿现象,需要将UIIMage重新绘制成UIImageView的大小

+ (UIImage*)scaleToSize:(UIImage*)imgsize:(CGSize)size {

  UIGraphicsBeginImageContextWithOptions(size, NO, 0.0);

  [img drawInRect:CGRectMake(0, 0, size.width, size.height)];

  UIImage* scaledImage = UIGraphicsGetImageFromCurrentImageContext();

  UIGraphicsEndImageContext();

  return scaledImage;

}

目前是这样解决的  

纯属自己理解,描述有误欢迎指教

相关文章

网友评论

      本文标题:iOS 图片出现波纹问题

      本文链接:https://www.haomeiwen.com/subject/klbepdtx.html