从 swift 3 中的数据转换图像时调整图像大小
Image size is resized when convert it from data in swift 3
我想在数据库中保存图像。因此我将它转换为数据。然而,在这些步骤中,图像的宽度和高度会发生变化。它的尺寸增加了。
// 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)
我不想增加图像大小!
如果它最初是您资产中的图像,它可能是 @2x,这意味着以像素为单位的大小(实际大小)是以点为单位的大小(显示大小)的两倍。所以图像大小实际上并没有增加,变换前后是 640x854。只是在OS自动缩放之前因为它被命名为@2x.
要使用原始图像比例,您可以将 1.0 替换为 capturedImage.scale
。
您的问题出在这一行:
m_CarImgVw.image = UIImage(data: damageImage!.imageData!, scale: 1.0)
你能看到吗?
提示:它在 scale: 1.0
.
看起来您的原始图像是 Retina(或 @2x),因此它的比例为 2.0。
因此,您应该将原始图像比例 (damageImage.scale
) 放在那里,或者如果您在屏幕上显示图像,则应该使用 UIScreen
's scale.
我想在数据库中保存图像。因此我将它转换为数据。然而,在这些步骤中,图像的宽度和高度会发生变化。它的尺寸增加了。
// 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)
我不想增加图像大小!
如果它最初是您资产中的图像,它可能是 @2x,这意味着以像素为单位的大小(实际大小)是以点为单位的大小(显示大小)的两倍。所以图像大小实际上并没有增加,变换前后是 640x854。只是在OS自动缩放之前因为它被命名为@2x.
要使用原始图像比例,您可以将 1.0 替换为 capturedImage.scale
。
您的问题出在这一行:
m_CarImgVw.image = UIImage(data: damageImage!.imageData!, scale: 1.0)
你能看到吗?
提示:它在 scale: 1.0
.
看起来您的原始图像是 Retina(或 @2x),因此它的比例为 2.0。
因此,您应该将原始图像比例 (damageImage.scale
) 放在那里,或者如果您在屏幕上显示图像,则应该使用 UIScreen
's scale.