iphone - como posso obter a altura e a largura da uiimage


Respostas:


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

let widthInPoints = image.size.width
let widthInPixels = widthInPoints * image.scale

3
Pontos. Multiplique pela propriedade scale para obter os pixels.
rmooney

Foi estranho. Tirei uma foto pela câmera e supus sua altura> largura. Mas os pontos de largura eram 1280 e altura 720. O que há com eles?
Henry

1
ao carregar a imagem do rolo da câmera (via UIImagePickerController), a escala sempre parece ser 1.0, mas o tamanho da imagem não faz com que o tamanho da imagem não seja especificado em pixels. (na verdade, é metade do tamanho do pixel). -> como faço para obter o tamanho adequado pixel - não pode usar UIScreen.main.scale causa que é 3 no iPhone 6/7 Além disso, mas Image.Size permanece o mesmo
benrudhart

Parece que image.scale é apenas 1.0 por padrão, como mencionado no comentário anterior. Dito isto, estou obtendo valores como (3000, 2002) para uma imagem de simulador padrão, de modo que devem ser os pixels reais e não um valor de ponto, certo? Esta postagem tem alguns anos e talvez image.size tenha sido alterado para refletir o valor real do pixel.
Austin Whitelaw


11
UIImage *img = [UIImage imageNamed:@"logo.png"];

CGFloat width = img.size.width;
CGFloat height = img.size.height;

6

Algumas das respostas acima, não funcionam bem ao girar o dispositivo.

Experimentar:

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

É simples de usar da UIImage do que usar outra estrutura.
Satyam

0

Existem muitas soluções úteis por aí, mas não há maneira simplificada com a extensão. Aqui está o código para resolver o problema com uma extensão:

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

você mostra como obter o tamanho do imageView, não é o mesmo com o tamanho da imagem
ramzesenok 25/03
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.