iphone - làm thế nào tôi có thể có được chiều cao và chiều rộng của uiimage


Câu trả lời:


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

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

3
Điểm. Nhân với thuộc tính tỷ lệ để có được các pixel.
rmooney

Nó thật lạ. Tôi chụp ảnh bằng máy ảnh và cho rằng chiều cao của nó> chiều rộng. Nhưng điểm của chiều rộng là 1280 và chiều cao 720. Có vấn đề gì với chúng?
Henry

1
khi tải hình ảnh từ cuộn camera (thông qua UIImagePickerControll), tỷ lệ dường như luôn là 1.0 nhưng image.size không image.size không được tính bằng pixel. (nó thực sự là một nửa kích thước pixel). -> làm cách nào để tôi có được kích thước pixel phù hợp - không thể sử dụng UIScreen.main.scale vì đó là 3 trên iPhone 6/7 Plus, nhưng image.size vẫn giữ nguyên
benrudhart

Có vẻ như image.scale chỉ là 1.0 theo mặc định, như đã đề cập trong bình luận trước đó. Điều đó đang được nói, tôi đang nhận được các giá trị như (3000, 2002) cho hình ảnh giả lập mặc định, vì vậy đó phải là pixel thực tế chứ không phải giá trị điểm, phải không? Bài đăng này đã được vài năm tuổi nên có thể image.size đã thay đổi để phản ánh giá trị pixel thực tế.
Austin Whitelaw


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

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

6

Một số anwsers ở trên, không hoạt động tốt khi xoay thiết bị.

Thử:

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

Nó đơn giản để sử dụng từ UIImage hơn là sử dụng một khung công tác khác.
Satyam

0

Có rất nhiều giải pháp hữu ích, nhưng không có cách nào đơn giản hóa với phần mở rộng. Đây là mã để giải quyết vấn đề với một phần mở rộng:

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

bạn chỉ cho bạn cách lấy kích thước của imageView, nó không giống với kích thước của hình ảnh
ramzesenok
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.