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
Очки Помножте на властивість масштабу, щоб отримати пікселі.
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.