View.Bounds给了我(0.0,0.0,375.0,667.0)的值来帮助计算视图尺寸。而CGImage,位图的大小给了我490像素数 - 像素宽度和751像素高度。我不明白为什么当比例因子给我的值为2时,为什么我得到的UIView边界内容大小小于CGImage像素的宽度和高度。但是如何从维度计算点数?如何取出375.0和667.0并计算?下面的代码帮助我获得了视图尺寸和比例因子。
let ourImage: UIImage? = imageView.image
let viewBounds = view.bounds
print("\(viewBounds)")
var scale: CGFloat = UIScreen.mainScreen().scale
print("\(scale)")
这是我用来接收像素高度和宽度490 * 751的代码。
public init?(image: UIImage) {
guard let cgImage = image.CGImage else { return nil }
// Redraw image for correct pixel format
let colorSpace = CGColorSpaceCreateDeviceRGB()
var bitmapInfo: UInt32 = CGBitmapInfo.ByteOrder32Big.rawValue
bitmapInfo |= CGImageAlphaInfo.PremultipliedLast.rawValue & CGBitmapInfo.AlphaInfoMask.rawValue
width = Int(image.size.width)
height = Int(image.size.height)
.... }
或者我可以使用(pixelWidth * 2 + pixelHeight * 2)来计算点数吗?我需要使用主动轮廓法计算或修复点数(n)以代替进一步的图像分割方程。
答案 0 :(得分:2)
图片视图不会调整大小以匹配您为其设置的图像属性。您设置的图像也不会调整大小以匹配图像视图的帧。
相反,图像视图显示该图像的表示,该图像缩放到与图像视图匹配的任何大小(基于您选择的规则,宽高比,宽高比,填充比例,其他等)。
因此,图像的实际大小正是从图像的size
属性中返回的任何内容。
要获得实际图像的实际宽度,请使用:
image.size.width
同样,要获得实际图像的实际高度,请使用:
image.size.height