J'ai une petite application iPhone que je travaille sur et j'affiche une image avec un UIImageView. Je suis en train de l'applaudir à l'aide du mode d'ajustement de l'aspect. J'aimerais avoir l'échelle d'image sans interpolation / lissage (je veux qu'il ait l'air pixellisé). Y a-t-il quelque chose que je peux changer ce comportement? p>
Un peu plus de question générale serait puis-je implémenter mon propre algorithme de mise à l'échelle ou existe-t-il d'autres éléments construits dans ceux que je peux sélectionner? P>
4 Réponses :
Il y a deux façons que vous puissiez faire cela. Vous pouvez soit implémenter un algrortithme de répression sans interpolation. Si cela est trop utile, vous pouvez modifier l'image dans une autre application comme GIMP ou Photoshop. Cela fonctionnerait à moins que vous ne deviez modifier de manière dynamique de la taille dans votre application. P>
Vous auriez besoin de définir la propriété de magnificationFilter sur la couche de la vue sur le filtre voisin le plus proche:
[[view layer] setMagnificationFilter:kCAFilterNearest]
Comme le dit la réponse de Rekle, assurez-vous d'ajouter #Import
C'est génial et réalise mon but, mais je veux demander, quand j'utilise magnificationfilter = kcafilnetier code>, les pixels importants et tranchants ont également agrandi les pixels d'origine de l'image, ou simplement produites par certains traitements? Merci toi!
Assurez-vous d'inclure la ligne
#import <QuartzCore/CALayer.h>
Et ajoutez QuartzCore Cadre à votre projet (Groupes et fichiers -> Ajouter -> EXTIMENTFRAMEWORKS ... -> Quartzcore.framework -> Ajouter).
imageView.layer.magnificationFilter = kCAFilterNearest imageView.layer.shouldRasterize = true