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

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;

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;

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) ;

0
    import func AVFoundation.AVMakeRect

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

    x = imageRect.minX

    y = imageRect.minY

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
        }
    }
}

-2
let imageView: UIImageView = //this is your existing imageView

let imageViewHeight: CGFloat = imageView.frame.height

let imageViewWidth: CGFloat = imageView.frame.width

muestra cómo obtener el tamaño de imageView, no es lo mismo con el tamaño de la imagen
ramzesenok
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.