哪种方法可以计算出图像的点数?

时间:2016-03-19 20:55:09

标签: ios swift image-processing pixels

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)以代替进一步的图像分割方程。

1 个答案:

答案 0 :(得分:2)

图片视图不会调整大小以匹配您为其设置的图像属性。您设置的图像也不会调整大小以匹配图像视图的帧。

相反,图像视图显示该图像的表示,该图像缩放到与图像视图匹配的任何大小(基于您选择的规则,宽高比,宽高比,填充比例,其他等)。

因此,图像的实际大小正是从图像的size属性中返回的任何内容。

要获得实际图像的实际宽度,请使用:

image.size.width

同样,要获得实际图像的实际高度,请使用:

image.size.height