如何减小来自 Web 服务的图像大小?

Posted

技术标签:

【中文标题】如何减小来自 Web 服务的图像大小?【英文标题】:How to reduce the image size coming from web services? 【发布时间】:2017-07-21 06:36:31 【问题描述】:

在下面显示的图像中,我从 Web 服务获取图像并将其传递给表格视图,但是当向上和向下滚动时,图像大小正在增加,并且它在标签上重叠,并且我已经给出了约束,任何人都可以帮助我如何避免这种情况?

【问题讨论】:

加载前调整图片大小 如何调整图片大小? @Anbu.Karthik ***.com/questions/17018617/…。检查此项以调整图像大小。 任何人都可以在目标 c @VishalKalola 中发布 swift 的答案 objectivec2swift.com 将代码转换成swift。 【参考方案1】:

嘿,您不需要调整图像大小。

    首先在表格视图单元格中使用约束设置固定图像视图的高度宽度

    第二次将imageview设置为aspectFit。

    imageView.contentMode = UIViewContentModeScaleAspectFit;
    

    像这样为您的图像视图添加约束

希望您能成功使用它,如果您对此有任何疑问,请评论将有所帮助

【讨论】:

之前我已经给出了高度限制,但是当我给定图像视图纵横比时,问题仍然存在,只需查看我的图像i.stack.imgur.com/30ioV.png @VamsiKrishna .. 还请设置您的 imageview 的固定宽度,因为它仍然在宽度部分自动调整大小。所以请固定宽度 请再试一次.. 删除所有单元格约束并先设置图像视图约束,然后再设置其他约束 i.stack.imgur.com/onYm4.png 这些是我对图像视图的限制 不要设置尾随空格..它的错误..约束超出循环。请参阅我在答案中附加的图片【参考方案2】:

使用内容模式来适应图像是一个选项,但如果您想裁剪或调整大小或压缩图像,请检查以下代码。

致电let imageData = image.compressImage(rate: 0.5),然后您可以根据需要提供数据来写入图像。

func compressImage(rate: CGFloat) -> Data? 
        return UIImageJPEGRepresentation(self, rate)
    

或者如果你想裁剪图像,那么,

func croppedImage(_ bound: CGRect) -> UIImage? 
        guard self.size.width > bound.origin.x else 
            print("X coordinate is larger than the image width")
            return nil
        
        guard self.size.height > bound.origin.y else 
            print("Y coordinate is larger than the image height")
            return nil
        
        let scaledBounds: CGRect = CGRect(x: bound.x * self.scale, y: bound.y * self.scale, width: bound.w * self.scale, height: bound.h * self.scale)
        let imageRef = self.cgImage?.cropping(to: scaledBounds)
        let croppedImage: UIImage = UIImage(cgImage: imageRef!, scale: self.scale, orientation: UIImageOrientation.up)
        return croppedImage
    

确保将上述方法添加到 UIImage 扩展中。

【讨论】:

【参考方案3】:

我在表格视图单元格上放置了一个视图,然后我放置了所有元素并为其中的视图和元素提供了约束,然后我的问题已经减少并且在滚动时也可以正常工作,如下图所示。

这是这个屏幕的布局

【讨论】:

以上是关于如何减小来自 Web 服务的图像大小?的主要内容,如果未能解决你的问题,请参考以下文章

如何在上传到服务器之前减小图像文件大小

从解析仪表板上传时如何减小图像大小

如何裁剪来自java端的动态图像?

来自 URL 视网膜大小的 iOS 图像?

使用播放服务 gcm 时如何减小 apk 大小

优化从相机胶卷中挑选的图像以减小文件大小