Antialias dans une NSImageView

UniXUniX Membre
23:42 modifié dans API AppKit #1
Salut.

Les NSImageView affiche les images sans utiliser l'antialias. Résultat, si on veut afficher une image de grandes dimensions dans une petite NSImageView, c'est pixélisé et moche .... >:(

J'ai tenté de créer une sous-classe de NSImageView, et de surclasser la méthode drawRect comme suit :
- (void)drawRect:(NSRect)rect <br />{<br />	[NSGraphicsContext saveGraphicsState];<br />	[[NSGraphicsContext currentContext] setImageInterpolation:NSImageInterpolationHigh];<br />	[[NSGraphicsContext currentContext] setShouldAntialias:YES];<br />	[super drawRect: rect];<br />	[NSGraphicsContext restoreGraphicsState];&nbsp; &nbsp; <br />}


Mais c'est pas mieux .... :P

Comment je peux m'y prendre ?

Réponses

  • août 2007 modifié #2
    ha tu vois que ça marche pas   :o
    Jte conseille de créer une nouvelle image à  partir de l'originale. En fait, tu redimensionnes l'originale proportionnellement à  la taille de ton image view.Ensuite tu retraces une nouvelles image (voir le code de bru) à  partir de l'image originale redimensionnée (ne pas oublier le setScaleWhenResized de l'image à  YES)

    Bizarrement, meme sans le craphic context, tu arrives à  avoir une image bcp moins pixellisé mais pas aussi jolie qu'avec l'antialiasing.
  • UniXUniX Membre
    23:42 modifié #3
    Ouais, mais là  c'est pour dessiner dans une NSImageView ...... Pour créer une image antialiasée, ça fonctionne .... :P

    J'ai pensé à  ton idée de créer une image antialiasée aux dimensions de la vue, mais comme je veux faire ça à  plusieurs endroits, ça sera ma solution de replis. Je préfèrerais pouvoir créer une NSImageView custo, que je n'aurais plus qu'à  placer aux différents endroits.
Connectez-vous ou Inscrivez-vous pour répondre.