美文网首页
图片压缩失真的问题记录

图片压缩失真的问题记录

作者: 乌拉大王 | 来源:发表于2017-03-17 17:42 被阅读51次

最近在更改项目中的一个小bug:图片上传后,后台看到的图片太过模糊。现在做一些更改。

1、之前都是按网上别的资料写的这个方法:


/**

*  压缩图片

*  image:将要压缩的图片  size:压缩后的尺寸

*/

- (UIImage *)originalImage:(UIImage *)image scaledToSize:(CGSize)newSize

{

UIGraphicsBeginImageContext(newSize);

[image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];

UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();

return newImage;//返回的就是已经改变的图片

}


然额,返回的图片还是模糊的😳


2 、后来,又重新找了新方法:


/**

*  压缩图片

*  image:将要压缩的图片  size:压缩后的尺寸

*/

// 下面方法,第一个参数表示区域大小。第二个参数表示是否是非透明的。如果需要显示半透明效果,需要传NO,否则传YES。第三个参数就是屏幕密度了

- (UIImage *)originalImage:(UIImage *)image scaledToSize:(CGSize)newSize

{

UIGraphicsBeginImageContextWithOptions(newSize, NO, [UIScreen mainScreen].scale);

[image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];

UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();

return newImage;

}


搞定!🤗

UIGraphicsBeginImageContext(size);其实就相当于UIGraphicsBeginImageContextWithOptions(size, NO, 1.0);之所以使用这个方法生成的图片不清晰,就是因为这个1.0。

UIGraphicsBeginImageContextWithOptions(CGSize size, BOOL opaque, CGFloat scale);其中size就是作图的size,opaque意思是 不透明的 ,scale是缩放因子;

这里相当于scale是1.0,而retina屏幕的像素肯定不是一倍像素,所以我们需要手动处理scale,用 UIGraphicsBeginImageContextWithOptions(size, NO, 0.0)这个方法去作图。0.0的意思就是自动调整缩放因子以适配显示屏,无论是Retina屏,还是普通屏,都可以清晰呈现。

这个是本人的总结,如有疏漏,请指教!😙😗😙😚

相关文章

  • 图片压缩失真的问题记录

    最近在更改项目中的一个小bug:图片上传后,后台看到的图片太过模糊。现在做一些更改。 1、之前都是按网上别的资料写...

  • 关于 图片剪裁的问题

    首先 我们在做图盘上传的 时候 都会遇到 图片太大 压缩的问题 记录一下 采用content 上下文 图片 压缩 ...

  • 图片压缩问题

    使用UIImagePNGRepresentation和UIImageJPEGRepresentation来压缩图片...

  • 图片压缩问题?

    拉伸图片的时候怎么才能让图片不变形? 文/叶孤城___(简书作者)原文链接:http://www.jianshu....

  • 三种Android图片压缩的方法

    个人收藏记录 一、图片质量压缩 /** * 质量压缩方法 * @param image * @r...

  • 2021-02-02

    记录一UI图 显示被裁切的问题 原图是没有裁切的,记录下找问题的思路1.查看原图,刚开始怀疑图片被压缩后造成的问题...

  • 工作日记第一篇(图片处理《压缩》)

    原本已经在度娘上搜出了各种压缩图片的处理方式,有暴力的失真的也有温柔的。 但是今天由于需求问题需要将图片压缩。 接...

  • 图片压缩

    只为记录图片压缩的内容用,非原创 图片存在形式 **getBitmapSize ** 两种压缩方式区别 略举4个压...

  • 图片压缩组件

    图片压缩 图片压缩

  • iOS 图片压缩方法

    两种图片压缩方法 两种图片压缩方法:压缩图片质量(Quality),压缩图片尺寸(Size)。 压缩图片质量 通过...

网友评论

      本文标题:图片压缩失真的问题记录

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