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

Ответы:

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

let widthInPoints = image.size.width
let widthInPixels = widthInPoints * image.scale
Jgubman
источник
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 изменился, чтобы отразить фактическое значение в пикселях.
Остин Уайтлоу
35

Используйте sizeсвойство в экземпляре UIImage. Смотрите документацию для более подробной информации.

аномия
источник
11
UIImage *img = [UIImage imageNamed:@"logo.png"];

CGFloat width = img.size.width;
CGFloat height = img.size.height;
MaxEcho
источник
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
ironRoei
источник
Его проще использовать из 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
Wyatt
источник
вы показываете, как получить размер imageView, это не то же самое с размером изображения
ramzesenok