2016-03-19 4 views
1

View.Bounds дал мне значения (0.0, 0.0, 375.0, 667.0), чтобы рассчитать размеры измерений. И CGImage, размер растрового изображения дал мне количество пикселей 490 пикселей и высоту 751 пиксель. Я не понимаю, почему я получаю ограниченный размер содержимого UIView меньше, чем ширина и высота пикселя CGImage, когда коэффициент масштабирования дал мне значение 2. Но как я могу вычислить количество точек из измерений? Как я могу вынуть 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

Я не понимаю, что вы пытаетесь сделать , Почему именно вы пытаетесь вычислить размер изображения? Это не имеет значения. Это звучит как проблема XY. – nhgrif

+0

Мне нужно выяснить или установить количество точек в изображении, чтобы использовать его в дальнейших расчетах алгоритма сегментации изображения, необходимо использовать значение в уравнении. Итак, как я могу начать вычислять или устанавливать количество очков? –

+2

Ох. Итак ... изображение не будет изменять размер изображения. В представлении изображения будет представлено изображение, которое масштабируется до размера изображения ... но сам образ может быть совсем другого размера (он может даже иметь другое соотношение сторон). 'image.size.width' и' image.size.height' дают вам истинные измерения фактического изображения. – nhgrif

ответ

2

Изображение не изменяет размер, чтобы соответствовать установленному в нем объекту изображения. Кроме того, изображение, которое вы устанавливаете, не изменяется в соответствии с кадром изображения.

Вместо этого изображение представляет собой представление этого изображения, масштабированного до любого размера, соответствующего размеру изображения (на основе правил, которые вы выбираете, аспект подходит, заполнение аспект, масштаб для заполнения, другие и т. Д.).

Таким образом, актуально Размер изображения - это точно то, что возвращается с изображения size.

Чтобы получить фактическую ширину фактического изображения, используйте:

image.size.width 

Аналогично, чтобы получить фактический рост, использование фактического изображения в:

image.size.height 

 Смежные вопросы

  • Нет связанных вопросов^_^