redimensionnement d'images

Philippe49Philippe49 Membre
décembre 2007 modifié dans API AppKit #1
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 ?

<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&gt;=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.