iphone - как узнать высоту и ширину изображения


227

С URL изображения в почте

Я добавляю изображение для просмотра почты. Это покажет полное изображение. Но я хочу рассчитать, пропорционально изменить высоту и ширину изображения.

Как я могу получить высоту и ширину UIImage?


Ответы:


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

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

3
Точки. Умножьте на свойство scale, чтобы получить пиксели.
rmooney

Это было странно Я сделал фотографию камерой и предположил, что ее высота> ширина. Но точки ширины были 1280, а высоты 720. Что с ними проблем?
Генри

1
при загрузке изображения с рулона камеры (через UIImagePickerController) масштаб всегда кажется равным 1,0, но image.size не image.size не дается в пикселях. (это на самом деле половина размера пикселя). -> Как я могу получить правильный размер пикселя - не могу использовать UIScreen.main.scale, потому что это 3 на iPhone 6/7 Plus, но image.size остается прежним
Benrudhart

Кажется, что image.scale просто 1.0 по умолчанию, как упоминалось в предыдущем комментарии. При этом я получаю такие значения, как (3000, 2002) для изображения симулятора по умолчанию, так что это должны быть фактические пиксели, а не точечные значения, верно? Этому сообщению несколько лет, поэтому, возможно, image.size изменился, чтобы отразить фактическое значение в пикселях.
Остин Уайтлоу


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

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

6

Некоторые из вышеперечисленных средств не работают при вращении устройства.

Пытаться:

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

Его проще использовать из UIImage, чем с помощью другого фреймворка.
Сатьям

0

Есть много полезных решений, но не существует упрощенного способа расширения. Вот код для решения проблемы с расширением:

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

вы показываете, как получить размер imageView, это не то же самое с размером изображения
ramzesenok
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.