2017-12-14 17 views
2

데이터베이스에 이미지를 저장하고 싶습니다. 따라서 나는 그것을 데이터로 변환한다. 그러나이 단계에서 이미지의 폭과 높이가 변경됩니다. 크기가 커집니다.신속한 데이터 변환시 이미지 크기가 조정됩니다. 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) 

이미지 크기를 늘리고 싶지 않습니다.

답변

5

원래 애셋에서 가져온 이미지 인 경우 @ 2x입니다. 픽셀 (실제 크기)의 크기는 pts (표시 크기)의 크기의 두 배입니다. 이미지 크기가 실제로 증가하지 않으므로 변환 전후의 640x854입니다. OS가 @ 2x라는 이름으로되어 있기 때문에 OS가 자동으로 크기를 조정하기 전에 그랬습니다.

원래 이미지 스케일을 사용하려면 1.0을 capturedImage.scale으로 바꿀 수 있습니다.

2

귀하의 문제는이 라인에있다 : 당신이 그것을

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

볼 수 있을까요?

힌트 : scale: 1.0입니다.

원본 이미지가 망막 (또는 @ 2x) 인 것처럼 보이므로 크기가 2.0입니다.

원본 이미지 스케일 (damageImage.scale)을 입력해야합니다. 또는 이미지를 화면에 표시하려면 UIScreen's scale을 사용해야합니다.