1

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; 

} 

ответ

0

Прежде всего, можете ли вы сделать свой вопрос более ясным? Я предлагаю вам нарисовать свой образ в прямоугольнике и не хочу его сжимать, я прав?

Тогда давайте попробовать этот метод:

//The method: drawInRect:(CGRect) will scale your pic and squeeze it to fit the Rect area 
//So if you dont want to scale your pic, you can use the method below 
[image drawAsPatternInRect:(CGRect)_rect]; 
//This method would not scale your image and cut the needless part 
+0

Это заставляет меня движется в правильном направлении, так что спасибо я, возможно, придется переписать pinchgesture вопрос пытается перевести то, что показано с преобразованием в щепоткой жест к который точно соответствует ему. Im не совсем уверен в том, что делает трансформация, но я предполагал изменить размер изображения, который, как я думал, будет в порядке, как предварительный просмотр, но, как я сказал, им не удалось перевести это в окончательное изображение и перезапустить изображение назад после его преобразования. еще раз спасибо. – rezand

 Смежные вопросы

  • Нет связанных вопросов^_^