redimensionnement d'images
Philippe49
Membre
Je reprends le post de Bru pour redimensionner les images, et j'ajuste pour que l'image " fit proportionnally "
Quelqu'un sait-il si il y a des nouveautés dans Leopard à ce sujet ?
Quelqu'un sait-il si il y a des nouveautés dans Leopard à ce sujet ?
<br />NSImage * resizedImage(NSImage *image,NSSize newSize)Â // newSize est ici pensé comme un carré<br />{<br /> // setProportionnaly : on formate au plus grand rectangle contenu dans le carré newSize <br /> NSRect newRect, oldRect; <br /> oldRect.origin=NSZeroPoint;<br /> oldRect.size=[image size];<br /> float ratio= [image size].height/[image size].width;<br /> if(ratio>=1){<br /> newRect.size.height=newSize.height;<br /> newRect.size.width=newRect.size.height/ratio;<br /> } else {<br /> newRect.size.width=newSize.width;<br /> newRect.size.height=newRect.size.width*ratio;<br /> } <br /> newRect.origin=NSZeroPoint;<br /> NSImage * thumbnail=[[NSImage alloc] initWithSize:newRect.size];<br /> <br /> // ouverture du port graphique de la petite image<br /> [thumbnail lockFocus];<br /> [NSGraphicsContext saveGraphicsState];<br /> // modif du port graphique<br /> [[NSGraphicsContext currentContext] setImageInterpolation:NSImageInterpolationHigh];<br /> [[NSGraphicsContext currentContext] setShouldAntialias:YES];<br /> <br /> // dessin de la grande image dans la petite<br /> [image drawInRect:newRect fromRect:oldRect operation:NSCompositeCopy fraction:1.0];<br /> <br /> // fermeture du port graphique de la petite image<br /> [NSGraphicsContext restoreGraphicsState];<br /> [thumbnail unlockFocus];<br /> <br /> return [thumbnail autorelease];<br />}<br /><br />
Connectez-vous ou Inscrivez-vous pour répondre.