im, используя чужой код жесты пинча для масштабирования, который работает отлично, но его масштабирование моего изображения в приложении для редактирования фотографий, и как только пользователь нажимает на масштабирование, мне нужны изменения, которые нужно отразить и сохранить, или другой способ сказать, что мне нужно изображение, чтобы на самом деле было увеличено и обрезано, если кто-то использовал масштабирование. Я решил, что могу использовать количество, которое они масштабировали * размер кадра для uigraphicsbeginimagecontext, но эта стратегия не работает, поскольку, когда пользователь масштабирует изображение и нажимает на сделанную кнопку, изображение становится меньше, потому что теперь этот очень большой размер сжимается в представлении когда я действительно хочу, чтобы он обрушился на любые остатки и не сделал ничего подходящего.IOS UIImage Scale and Crop, масштабирование на самом деле делает изображение меньше?
- (IBAction)pinchGest:(UIPinchGestureRecognizer *)sender{
if (sender.state == UIGestureRecognizerStateEnded
|| sender.state == UIGestureRecognizerStateChanged) {
NSLog(@"sender.scale = %f", sender.scale);
CGFloat currentScale = self.activeImageView.frame.size.width/self.activeImageView.bounds.size.width;
CGFloat newScale = currentScale * sender.scale;
if (newScale < .5) {
newScale = .5;
}
if (newScale > 4) {
newScale = 4;
}
CGAffineTransform transform = CGAffineTransformMakeScale(newScale, newScale);
self.activeImageView.transform = transform;
scalersOfficialChange = newScale;
sender.scale = 1;
}
}
- (IBAction)doneMoverViewButtonPressed:(UIButton *)sender {
// turn off ability to move & scale
moverViewActive = NO;
NSLog(@"%f %f",dragOfficialChange.x,dragOfficialChange.y);
NSLog(@"%f",rotationOfficialChange);
NSLog(@"%f",scalersOfficialChange);
//problem area below...
CGSize newSize = CGSizeMake(self.activeImageView.bounds.size.width * scalersOfficialChange, self.activeImageView.bounds.size.height * scalersOfficialChange);
UIGraphicsBeginImageContext(newSize);
[self.activeImageView.image drawInRect:CGRectMake(dragOfficialChange.x, dragOfficialChange.y, self.layerContainerView.bounds.size.width, self.layerContainerView.bounds.size.height)];
self.activeImageView.image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
[self hideMoveViewerAnimation];
//resets activeimageview coords
CGRect myFrame = self.layerContainerView.bounds;
myFrame.origin.x = 0;
myFrame.origin.y = 0;
self.activeImageView.frame = myFrame;
//reset changes values
dragOfficialChange.x = 0;
dragOfficialChange.y = 0;
rotationOfficialChange = 0;
scalersOfficialChange = 0;
}
Это заставляет меня движется в правильном направлении, так что спасибо я, возможно, придется переписать pinchgesture вопрос пытается перевести то, что показано с преобразованием в щепоткой жест к который точно соответствует ему. Im не совсем уверен в том, что делает трансформация, но я предполагал изменить размер изображения, который, как я думал, будет в порядке, как предварительный просмотр, но, как я сказал, им не удалось перевести это в окончательное изображение и перезапустить изображение назад после его преобразования. еще раз спасибо. – rezand