redimensionner une image

dibathildibathil Membre
20:37 modifié dans API AppKit #1
Bonjours,
j'arrive pas à  faire un truc tout bête, redimensionner une image (en pixel).
J'ai regardé du côté de nsimage, mais cocoa à  une représentation des images que je pige pas.

Réponses

  • schlumschlum Membre
    20:37 modifié #2
    Ca a déjà  été abordé nombre de fois ici...
    On peut utiliser "setSize" mais qui ne redimensionne pas en "poids", ou sinon il y a plusieurs solutions, dont redessiner dans une nouvelle image de la nouvelle taille l'ancienne.
  • dibathildibathil Membre
    20:37 modifié #3
    Je post rarement parce que généralement je trouve en cherchant sur le site. La j'ai rien trouvé...
    Comment on peut redessiner ds une nouvelle image
  • schlumschlum Membre
    20:37 modifié #4
    Avec "lockFocus" et "unlockFocus"
  • psychoh13psychoh13 Mothership Developer Membre
    20:37 modifié #5
    Voilà  comment ça peut se faire :

    // Définies quelque part :<br />NSSize newSize;<br />NSImage *image;<br />// Le code lui-même :<br />NSImage *newImage = [[NSImage alloc] initWithSize:newSize];<br /><br />// On commence à  dessiner<br />[newImage lockFocus];<br />// On dessine<br />[image drawAtPoint:NSZeroPoint<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; fromRect:NSZeroRect operation:NSCompositeCopy<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; fraction:1.0];<br />// on arrête de dessiner<br />[newImage unlockFocus];<br />
    


    Voilà .
  • dibathildibathil Membre
    20:37 modifié #6
    ok merci,
    je vais tester çà 
  • dibathildibathil Membre
    20:37 modifié #7
    Un problème:
    J'ai besoin d'écrire l'image dans un fichier. Je le faisait en recuperant sa representation
    NSBitmapImageRep *rep = [[newImage representations] objectAtIndex:0];
    
    or la representation ici est une NSCachedImageRep
  • schlumschlum Membre
    20:37 modifié #8
    Vaut mieux dessiner directement dans un bitmapImageRep dans ce cas.
  • dibathildibathil Membre
    20:37 modifié #9
    Comment?
  • dibathildibathil Membre
    20:37 modifié #10
    Je pensais utiliser
    - (void)lockFocusOnRepresentation:(NSImageRep *)imageRepresentation

    en utilisant un NSBitmapImageRep

    Mais j'arrive pas à  faire marcher
  • schlumschlum Membre
    20:37 modifié #11
    dans 1193676913:

    Je pensais utiliser
    - (void)lockFocusOnRepresentation:(NSImageRep *)imageRepresentation

    en utilisant un NSBitmapImageRep

    Mais j'arrive pas à  faire marcher

    Non, ça ne fonctionne pas.
    Il faut dessiner dans un NSBitmapRep que tu crées et que tu ajoutes à  l'image après.
  • dibathildibathil Membre
    20:37 modifié #12
    merci j'essayerais çà  demain, je te tients au courant
Connectez-vous ou Inscrivez-vous pour répondre.