J'ai un bit de code très simple qui est censé capturer le bitmap d'une vue. Cela a l'habitude de travailler dans Leopard, mais semble horriblement brisé dans Snow Leopard.Pourquoi bitmapImageRepForCachingDisplayInRect: créer une image vide?
Voici le code, en réponse à un bouton pression sur la fenêtre:
- (IBAction)snapshot:(id)sender
{
NSView* view = [[sender window] contentView];
NSBitmapImageRep* bitmap
= [view bitmapImageRepForCachingDisplayInRect:[view bounds]];
NSData *tiff = [bitmap TIFFRepresentation];
[tiff writeToFile:[@"~/Desktop/snapshot.tiff" stringByExpandingTildeInPath]
atomically:YES];
}
En cliquant sur le bouton pour prendre un instantané juste dans une résultats image entièrement transparente.
Suis-je complètement complètement désolé ici, ou est-ce que cette méthode de mise en cache bitmap est cassée?
Un projet simple - essentiellement un projet NSDocument de démarrage, avec un bouton qui appelle ce code - peut être trouvé here.