iPhone: ¿cómo puedo obtener la altura y el ancho de uiimage?

Respuestas:

424
let heightInPoints = image.size.height
let heightInPixels = heightInPoints * image.scale

let widthInPoints = image.size.width
let widthInPixels = widthInPoints * image.scale
Jgubman
fuente
3
Puntos. Multiplique por la propiedad de escala para obtener los píxeles.
rmooney
Fue extraño Tomé una foto con la cámara y supuse su altura> ancho. Pero los puntos de ancho eran 1280 y la altura 720. ¿Cuál es el problema con ellos?
Henry
1
Cuando se carga la imagen desde el carrete de la cámara (a través de UIImagePickerController), la escala siempre parece ser 1.0, pero el tamaño de la imagen no se da en píxeles. (en realidad es la mitad del tamaño de píxel). -> ¿cómo puedo obtener el tamaño adecuado de píxeles - no puede utilizar UIScreen.main.scale causa que es 3 en el iPhone 6/7 Plus, pero Image.Size sigue siendo el mismo
benrudhart
Parece que image.scale es solo 1.0 por defecto, como se mencionó en el comentario anterior. Dicho esto, obtengo valores como (3000, 2002) para una imagen de simulador predeterminada, por lo que deben ser los píxeles reales y no un valor de punto, ¿verdad? Esta publicación tiene algunos años, por lo que puede que image.size haya cambiado para reflejar el valor real de píxeles.
Austin Whitelaw
11
UIImage *img = [UIImage imageNamed:@"logo.png"];

CGFloat width = img.size.width;
CGFloat height = img.size.height;
MaxEcho
fuente
6

Algunas de las respuestas anteriores no funcionan bien al girar el dispositivo.

Tratar:

CGRect imageContent = self.myUIImage.bounds;
CGFloat imageWidth = imageContent.size.width;
CGFloat imageHeight = imageContent.size.height;
Sinuhe Huidobro
fuente
2
UIImageView *imageView = [[[UIImageView alloc]initWithImage:[UIImage imageNamed:@"MyImage.png"]]autorelease];

NSLog(@"Size of my Image => %f, %f ", [[imageView image] size].width, [[imageView image] size].height) ;
Sayeed S. Alam
fuente
0
    import func AVFoundation.AVMakeRect

    let imageRect = AVMakeRect(aspectRatio: self.image!.size, insideRect: self.bounds)

    x = imageRect.minX

    y = imageRect.minY
ironRoei
fuente
Es fácil de usar desde UIImage que usar otro marco.
Sábado
0

Existen muchas soluciones útiles, pero no hay una forma simplificada con la extensión. Aquí está el código para resolver el problema con una extensión:

extension UIImage {

    var getWidth: CGFloat {
        get {
            let width = self.size.width
            return width
        }
    }

    var getHeight: CGFloat {
        get {
            let height = self.size.height
            return height
        }
    }
}
Bruno Eigenmann
fuente
-2
let imageView: UIImageView = //this is your existing imageView

let imageViewHeight: CGFloat = imageView.frame.height

let imageViewWidth: CGFloat = imageView.frame.width
Wyatt
fuente
muestra cómo obtener el tamaño de imageView, no es lo mismo con el tamaño de la imagen
ramzesenok