let heightInPoints = image.size.height
let heightInPixels = heightInPoints * image.scale
let widthInPoints = image.size.width
let widthInPixels = widthInPoints * image.scale
Zwrotnica. Pomnóż przez właściwość skali, aby uzyskać piksele.
rmooney
To było dziwne. Zrobiłem zdjęcie aparatem i przypuszczałem, że jego wysokość> szerokość. Ale punkty szerokości wynosiły 1280, a wysokość 720. Jaki jest z nimi problem?
Henry
1
podczas ładowania obrazu z rolki aparatu (za pomocą UIImagePickerController) skala zawsze wydaje się wynosić 1,0, ale image.size nie ma image.size nie jest podawany w pikselach. (to tak naprawdę połowa wielkości piksela). -> jak uzyskać odpowiedni rozmiar piksela - nie można użyć UIScreen.main.scale, ponieważ to jest 3 na iPhone 6/7 Plus, ale image.size pozostaje taki sam
benrudhart
Wygląda na to, że image.scale ma domyślnie tylko 1,0, jak wspomniano w poprzednim komentarzu. Biorąc to pod uwagę, otrzymuję wartości takie jak (3000, 2002) dla domyślnego obrazu symulatora, więc muszą to być rzeczywiste piksele, a nie wartość punktowa, prawda? Ten post ma kilka lat, więc może image.size zmieniło się w celu odzwierciedlenia rzeczywistej wartości pikseli.
Austin Whitelaw
35
Użyj sizewłaściwości instancji UIImage. Więcej informacji znajduje się w dokumentacji .
let imageView:UIImageView=//this is your existing imageViewlet imageViewHeight:CGFloat= imageView.frame.height
let imageViewWidth:CGFloat= imageView.frame.width
Odpowiedzi:
źródło
Użyj
size
właściwości instancji UIImage. Więcej informacji znajduje się w dokumentacji .źródło
źródło
Niektóre z powyższych odpowiedzi nie działają dobrze podczas obracania urządzenia.
Próbować:
źródło
źródło
źródło
Istnieje wiele pomocnych rozwiązań, ale nie ma uproszczonego sposobu na rozszerzenie. Oto kod rozwiązania problemu z rozszerzeniem:
źródło
źródło