Kod zostanie dodany do Github, aby umożliwić zrozumienie prawdziwego problemu.Jak scalić dwie jednostki UII z zachowaniem proporcji i rozmiaru?
To hierarchia:
-- ViewController.View P [width: 375, height: 667]
---- UIImageView A [width: 375, height: 667] Name: imgBackground
[A is holding an image of size(1287,1662)]
---- UIImageView B [width: 100, height: 100] Name: imgForeground
[B is holding an image of size(2400,982)]
Próbuję połączyć A z B, ale wynik jest rozciągnięta.
Jest to kod seryjnej:
func mixImagesWith(frontImage:UIImage?, backgroundImage: UIImage?, atPoint point:CGPoint, ofSize signatureSize:CGSize) -> UIImage {
let size = self.imgBackground.frame.size
UIGraphicsBeginImageContextWithOptions(size, false, UIScreen.main.scale)
backgroundImage?.draw(in: CGRect.init(x: 0, y: 0, width: size.width, height: size.height))
frontImage?.draw(in: CGRect.init(x: point.x, y: point.y, width: signatureSize.width, height: signatureSize.height))
let newImage:UIImage = UIGraphicsGetImageFromCurrentImageContext()!
UIGraphicsEndImageContext()
return newImage
}
Uwaga:
- .contentMode = .scaleAspectFit
- Kod działa, ale wynik jest rozciągnięta.
- Zobacz ten wiersz w kodzie,
let size = self.imgBackground.frame.size
- Muszę to zmienić, aby rozwiązać problem. Find the origin of subview with respect to UIImage size
Oto zrzut ekranu, aby zrozumieć problem:
Co należy zrobić, aby uzyskać prawidłowe wyjście z funkcji korespondencji seryjnej?
Cześć Michał, dzięki za odpowiedź. Jest jeden mały problem z tym. Ponieważ dwa obrazy mają różną wielkość. Po scaleniu zauważalna jest różna zmiana pochodzenia dla 'UIImage B'. Co należy zrobić, aby uzyskać dokładne pochodzenie w odniesieniu do oryginalnego rozmiaru obrazu (np. "UIImage A")? – Hemang
@Hemang Testowałem na różnych emulatorach i nie widzę żadnej zmiany pochodzenia po scaleniu przy użyciu dostarczonego kodu źródłowego. Czy mógłbyś zadać osobne pytanie? – mixel
Dzięki, Michael, oto nowe [pytanie] (http://stackoverflow.com/questions/44095532/how-to-merge-two-uiimages-whi--keeping-their-position-size-and-aspect-ratios) . – Hemang