iphone - color - titlelabel swift
¿Cómo escalar un UIImage sin suavizar nada? (5)
#import <QuartzCore/CALayer.h>
view.layer.magnificationFilter = kCAFilterNearest
Quiero escalar un UIImage de tal manera que el usuario pueda ver los píxeles en el UIImage muy nítidos. Cuando lo pongo en un UIImageView y escala la matriz de transformación, el UIImage aparece suavizado y suavizado.
¿Hay alguna forma de renderizar en un contexto de mapa de bits más grande simplemente repitiendo cada fila y cada columna para obtener píxeles más grandes? ¿Cómo podría hacer eso?
También estaba intentando esto (en una subcapa) y no pude hacerlo funcionar, todavía estaba borroso. Esto es lo que tuve que hacer:
const CGFloat PIXEL_SCALE = 2;
layer.magnificationFilter = kCAFilterNearest; //Nearest neighbor texture filtering
layer.transform = CATransform3DMakeScale(PIXEL_SCALE, PIXEL_SCALE, 1); //Scale layer up
//Rasterize w/ sufficient resolution to show sharp pixels
layer.shouldRasterize = YES;
layer.rasterizationScale = PIXEL_SCALE;
Para UIImage creado a partir de CIImage, puedes usar:
imageView.image = UIImage(CIImage: ciImage.imageByApplyingTransform(CGAffineTransformMakeScale(kScale, kScale)))
Al dibujar directamente en el contexto de mapa de bits, podemos usar:
CGContextSetInterpolationQuality(myBitmapContext, kCGInterpolationNone);
Encontré esto en CGContextDrawImage muy lento en iPhone 4
Prueba la respuesta de esta pregunta .