dan*_*ood 4 cocoa nsview nsbitmapimagerep
我有一个非常简单的代码,可以捕获视图的位图.这曾经在Leopard中运行,但在Snow Leopard中看起来非常糟糕.
这是代码,响应窗口上的按钮按下:
- (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];
}
Run Code Online (Sandbox Code Playgroud)
单击按钮拍摄快照只会产生完全透明的图像.
我在这里完全无能为力,还是这个位图缓存方法被打破了?
一个简单的项目 - 基本上是一个启动NSDocument项目,带有一个调用此代码的按钮 - 可以在这里找到.
Mik*_*lah 14
-bitmapImageRepForCachingDisplayInRect:实际上没有抓住任何东西; 它只是生成一个空白位图准备缓存.你需要打电话-cacheDisplayInRect:toBitmapImageRep:来做那件事.
| 归档时间: |
|
| 查看次数: |
1682 次 |
| 最近记录: |