【问题标题】:Image size is resized when convert it from data in swift 3从swift 3中的数据转换图像大小时调整大小
【发布时间】:2018-05-28 17:04:34
【问题描述】:

我想将图像保存在数据库中。因此我将其转换为数据。然而,在这些步骤中,图像的宽度和高度会发生变化。它的尺寸增加了。

// Original Image Size
print("Original Image Size : \(capturedImage.size)") // Displays (320.0, 427.0)

// Convert to Data
var imageData: Data?
imageData = UIImagePNGRepresentation(capturedImage)

// Store imageData into Db.

// Convert it back
m_CarImgVw.image = UIImage(data: damageImage!.imageData!, scale: 1.0)
print("m_CarImgVw Image Size : \(m_CarImgVw.image.size)") // Displays (640.0, 854.0)

我不希望图像大小增加!

【问题讨论】:

    标签: ios swift swift3 nsdata uiimagepngrepresentation


    【解决方案1】:

    如果它最初是来自您的资源的图像,它可能是@2x,这意味着以像素为单位的大小(实际大小)是以 pts 为单位的大小(显示大小)的两倍。所以图像大小实际上并没有增加,它在变换前后是 640x854。只是在操作系统自动缩放它之前,因为它被命名为@2x。

    要使用原始图像比例,您可以将 1.0 替换为 capturedImage.scale。

    【讨论】:

      【解决方案2】:

      你的问题出在这一行:

      m_CarImgVw.image = UIImage(data: damageImage!.imageData!, scale: 1.0)
      

      你能看到吗?

      提示:在scale: 1.0。

      看起来您的原始图像是 Retina(或 @2x),所以它的比例为 2.0。

      因此,您应该将原始图像比例 (damageImage.scale) 放在那里,或者如果您在屏幕上呈现图像,则应该使用 UIScreen's scale。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-30
        • 1970-01-01
        • 1970-01-01
        • 2012-09-07
        • 1970-01-01
        • 2010-12-21
        相关资源
        最近更新 更多