NSImageView et Crénelage
Nebuchad34
Membre
Bonsoir, (et bonne année au passage )
J'ai ajouté à mon interface un NSImageView éditable, en "binding" avec une NSImage. Le but étant simplement de pouvoir glisser déposer mon image dans le cadre NSImageView. Tout fonctionne parfaitement excepté que l'image, qui est rapetissée automatiquement pour s'ajuster à la NSImageView est de fait crénelée et c'est vraiment très moche.
J'imagine qu'il y a moyen d'arranger ça en sous-classant le NSImageView mais je ne sais vraiment pas comment m'y prendre.
Merci d'avance pour votre aide.
J'ai ajouté à mon interface un NSImageView éditable, en "binding" avec une NSImage. Le but étant simplement de pouvoir glisser déposer mon image dans le cadre NSImageView. Tout fonctionne parfaitement excepté que l'image, qui est rapetissée automatiquement pour s'ajuster à la NSImageView est de fait crénelée et c'est vraiment très moche.
J'imagine qu'il y a moyen d'arranger ça en sous-classant le NSImageView mais je ne sais vraiment pas comment m'y prendre.
Merci d'avance pour votre aide.
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
crénelée ?
tu as mis quoi comme réglage IB pour "scaling" et "border"
Essaie le projet ci-joint : vois-tu l'aspect crénelé à l'utilisation ?
Voilà ce que ça donne :
Et ce quelque soit l'image source, il suffit quelle soit notablement plus grande que la taille du cadre
Envoie ton image test pour essayer
http://www.universepokertour.net/images/UPT.png
NSImage * thumbnail=[[NSImage alloc] initWithSize:newRect.size];
// ouverture du port graphique de la petite image
[thumbnail lockFocus];
[NSGraphicsContext saveGraphicsState];
// modif du port graphique
[[NSGraphicsContext currentContext] setImageInterpolation:NSImageInterpolationHigh];
[[NSGraphicsContext currentContext] setShouldAntialias:YES];
// dessin de la grande image dans la petite
[image drawInRect:newRect fromRect:oldRect operation:NSCompositeCopy fraction:1.0];
// fermeture du port graphique de la petite image
[NSGraphicsContext restoreGraphicsState];
Un tutoriel lié aux IKImageView
[EDIT] Oui, bien mieux !
(ne pas oublier d'inclure Quartz.framework)
Je ne comprends pas comment faire en sorte que l'image soit redimmensionné automatiquement comme tu l'as fait dans ton exemple avec le NSImageView. Tu peux m'envoyer la source ?
Merci.
Tu peux essayer directement : tape IKImage dans le search field de IB, et mets importe le framework Quartz.framework dans ton projet (clic-droit sur le group frameworks, add Existing Framework et prendre dans Developper>SDKs>10.5>...)
Pour le fond, il doit y avoir un réglage à faire (voir la doc)
Pour NSImage et le resize, il faudrait sous-classer NSImage et redéfinir setImage en faisant le resize à l'intérieur.
De plus il faudra peut-être regarder lors d'un redimensionnement de la fenêtre. Donc du code suppélmentaire qui doit être déjà bien fait dans IKImageView.
Merci pour ton aide.
Pour ceux que ça interesserait, voilà ma définition de la méthode "setImage:", sachant que mes RCImageView sont toutes carrées et de même taille, je renseigne la largeur en pix avec un #define LARGEUR_COTE