У меня есть слайд-шоу, которое позволяет пользователям комментировать слайды с помощью простого инструмента рисования.Просто позволяет рисовать на экране пальцем, а затем «сохранить».Функция сохранения использует UIImagePNGRepresentation
и работает довольно хорошо.Мне нужно выяснить, как «продолжить» существующие аннотации, поэтому, когда происходит сохранение, оно также учитывает то, что уже находится на слайде.
Он работает с использованием UIImageContext и сохраняет этот контекст изображения в файл.Когда изображение сохранено, оно открывается в оверлей UIImageView, поэтому, если вы «продолжаете», тогда ваш рисунок в существующий файл png.
Есть ли способ добавить существующее изображение в UIImageContext?Здесь я контролирую добавление линий при движении:
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
if(drawToggle){
UITouch *touch = [touches anyObject];
CGPoint currentPoint = [touch locationInView:self.view];
currentPoint.y -= 40;
//Define Properties
[drawView.image drawInRect:CGRectMake(0, 0, drawView.frame.size.width, drawView.frame.size.height)];
CGContextSetLineCap(UIGraphicsGetCurrentContext(), kCGLineCapRound);
CGContextSetLineJoin(UIGraphicsGetCurrentContext(), kCGLineJoinBevel);
CGContextSetLineWidth(UIGraphicsGetCurrentContext(), 5.0);
CGContextSetRGBStrokeColor(UIGraphicsGetCurrentContext(), 1.0, 0.0, 0.0, 1.0);
//Start Path
CGContextBeginPath(UIGraphicsGetCurrentContext());
CGContextMoveToPoint(UIGraphicsGetCurrentContext(), lastPoint.x, lastPoint.y);
CGContextAddLineToPoint(UIGraphicsGetCurrentContext(), currentPoint.x, currentPoint.y);
CGContextStrokePath(UIGraphicsGetCurrentContext());
//Save Path to Image
drawView.image = UIGraphicsGetImageFromCurrentImageContext();
lastPoint = currentPoint;
}
}
Вот волшебная спасительная линия:
NSData *saveDrawData = UIImagePNGRepresentation(UIGraphicsGetImageFromCurrentImageContext());
NSError *error = nil;
[saveDrawData writeToFile:dataFilePath options:NSDataWritingAtomic error:&error];
Спасибо за любую помощь, которую вы можете предложить.
ОБНОВЛЕНИЕ:
К сожалению, я забыл добавить, что когда аннотация 'сохраняется', контекст изображения заканчивается, поэтому я не могу использовать методы стиля Получить контекст текущего изображения.