Как предотвратить размывание пикселей при увеличении изображения в проекте выбора цвета для iOS?
Я делаю небольшой проект, который предоставляет возможность увеличить изображение и выбрать цвета пикселей из лупы, теперь я могу увеличить место прикосновения изображения, но лупа показывает пиксели с размытым эффектом, как я могу сделать это показать пиксели один за другим очень четко, без какой-либо нечеткой обработки?
- (void)drawRect:(CGRect)rect
{
CGContextRef context = UIGraphicsGetCurrentContext();
CGRect bounds = self.bounds;
CGImageRef mask = [UIImage imageNamed: @"loupe-mask@2x.png"].CGImage;
UIImage *glass = [UIImage imageNamed: @"loupe-hi@2x.png"];
CGContextSaveGState(context);
CGContextClipToMask(context, bounds, mask);
CGContextFillRect(context, bounds);
CGContextScaleCTM(context, 40, 40);
//draw your subject view here
CGContextTranslateCTM(context,1*(self.frame.size.width*0.5),1*(self.frame.size.height*0.5));
//CGContextScaleCTM(context, 1.5, 1.5);
CGContextTranslateCTM(context,-1*(touchPoint.x),-1*(touchPoint.y));
[self.viewToMagnify.layer renderInContext:context];
CGContextRestoreGState(context);
[glass drawInRect: bounds];
}
Должно быть:
Не должно быть:
1 ответ
Вы хотите установить режим рисования, который масштабирует пиксели, а не интерполирует. Я думаю, что для рисования, которое вы делаете, вам нужна команда CGContext CGContextSetInterpolationQuality со значением kCGInterpolationNone.
(Отказ от ответственности: я думаю, что это настройка, но я не уверен, и не пробовал.)
Кстати, на этом сайте, вероятно, лучше избегать изображений, которые могут быть близки к NSFW. Этот сайт читают по всему миру, и я уверен, что многие люди читают его на работе. Разные рабочие места имеют совершенно разные стандарты того, что приемлемо. Ваше примерное изображение довольно рискованно.