UIImage cambia el tamaño con bordes duros

Necesito un método para cambiar el tamaño de UIImage como en Photoshop con el remuestreo de "vecino más cercano". Estaba buscando algo, pero todo lo que encontré era sobre los grosores de CoreGraphics para mejorar la calidad del remuestreo bicúbico. Tengo un layout estilo píxel en mi aplicación, y muchas cosas que creo por píxel y luego lo amplío con multiplicador x5 (y me lleva mucho time, por lo que incluso cerca de escribir un script para Photoshop). Por ejemplo:

introduzca la descripción de la imagen aquí > introduzca la descripción de la imagen aquí

Pero realmente no necesito esto como resultado del remuestreo:

introduzca la descripción de la imagen aquí

Tal vez alguien me muestre el path correcto.

Cuando dibuja su image en un context de charts, puede establecer la calidad de interpolación del context de charts en "ninguno", como esta (por ejemplo, en el método drawRect una vista):

 CGContextRef c = UIGraphicsGetCurrentContext(); CGContextSetInterpolationQuality(c, kCGInterpolationNone); UIImage *image = [UIImage imageNamed:@"pixels.png"]; [image drawInRect:self.bounds]; 

Si necesita el resultado como un UIImage (por ejemplo, para asignarlo a un control de interfaz de usuario integrado), puede hacerlo con UIGraphicsBeginImageContext (encontrará muchos ejemplos para eso).

Una alternativa sería establecer la propiedad magnificationFilter de la capa de una vista de image:

 pixelatedImageView.layer.magnificationFilter = kCAFilterNearest; 

Probablemente sea más rápido y más eficiente de memory, ya que no necesita volver a dibujar la image.