Incorporer un cercle au centre d'une nsimage dans une nsimageView

syncsync Membre
septembre 2006 modifié dans API AppKit #1
Bonjour,

J'aimerai dessiner une cercle (vide, uniquement le contour) pile poil au milieu d'une nsimage déjà  existante et charger cette nsimage modifiée dans une nsimageView. Est-ce que cela est-il possible ?

Merci beaucoup d'avance

Bonne journée
Anthony

Update:

NSImage *anImage = [[[NSImage alloc] initWithSize:NSMakeSize(50,50)] autorelease];<br />	[anImage lockFocus];	<br />	<br />	[[NSColor redColor] set];<br />	[NSBezierPath fillRect:NSMakeRect(0,0,50,50)];<br />	<br />	[[NSColor greenColor] set];<br />	NSBezierPath *path = [NSBezierPath bezierPath];<br />	[path setLineWidth:3];	<br />	[path moveToPoint:NSMakePoint(0,0)];<br />	[path lineToPoint:NSMakePoint(50,50)];<br />	[path closePath];<br />	[path stroke];<br /><br />	[anImage unlockFocus];<br />	[myImageView setImage:anImage];


Il semblerait que ce soit un début de réponse, provenant de ce forum

Réponses

  • syncsync Membre
    03:45 modifié #2
    C'est bon trouvé

    NSImage *imageFromBundle = [[NSImage alloc] initWithData:imageData];<br />&nbsp; &nbsp; [imageFromBundle lockFocus];	<br />	<br />	[[NSColor redColor] set];<br />	NSBezierPath *path = [NSBezierPath bezierPath];<br />&nbsp; &nbsp; [path setWindingRule:NSEvenOddWindingRule];<br />&nbsp; &nbsp; [path appendBezierPathWithOvalInRect:NSInsetRect(NSMakeRect(265,265,70,70), 10.0, 10.0)];<br />&nbsp; &nbsp; //[path appendBezierPathWithOvalInRect:NSInsetRect(NSMakeRect(190,190,50,50), 25.0, 25.0)];<br />&nbsp; &nbsp; //[path fill];	<br />	[path setLineWidth:2];<br />	[path stroke];<br />	<br /><br />	[imageFromBundle unlockFocus];<br />
    
  • BruBru Membre
    03:45 modifié #3
    Question puis réponse...
    Bravo !

    .
  • AntilogAntilog Membre
    03:45 modifié #4
    ... Et pourquoi pas:

    NSImage *imageFromBundle = [[NSImage alloc] initWithData:imageData];[imageFromBundle lockFocus];	<br />	<br />[[NSColor redColor] set];<br />NSBezierPath *path = [NSBezierPath bezierPathWithOvalInRect:NSInsetRect(NSMakeRect(265,265,70,70), 10.0, 10.0)];<br />[path setLineWidth:2];<br />[path stroke];<br />[imageFromBundle unlockFocus];<br />
    

    Je me demande si dans ton cas, le NSEvenOddWindingRule est utile...
Connectez-vous ou Inscrivez-vous pour répondre.