【发布时间】:2016-03-19 20:55:08
【问题描述】:
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) 以替代图像分割的进一步方程。
【问题讨论】:
-
我不明白你在做什么。你究竟为什么要计算图像的大小?应该没关系。这听起来像是一个 XY 问题。
-
我需要计算或设置图像中的点数,以便在图像分割算法的进一步计算中使用它,需要使用方程中的值。那么我该如何继续计算或设置点数?
-
哦。所以......图像视图不会调整为图像的大小。图像视图将呈现缩放到图像视图大小的图像表示......但图像本身很可能是不同的大小(它甚至可能具有不同的纵横比)。
image.size.width和image.size.height为您提供实际图像的真实测量值。 -
哦,好的。处理给定的建议。非常感谢。
-
太好了,答案对我有用。您能否提供它作为答案,以便我可以选择它并提及这个问题作为回答?再次感谢您,我对大小和界限感到困惑。
标签: ios swift image-processing pixels