2011-08-11 82 views
0

我在Qt4中編寫了一個使用QImage.scaled()或QPixmap.scaled()方法的測試應用程序,該方法變得非常慢。即使透視變換速度更快,而縮放變換也同樣緩慢。 [我試圖直接調整一個QPainter,但我不掌握paintEvent(),所以我總是得到「畫家不活躍」或paintEvent()根本沒有被調用。所以我不知道畫家縮放性能。] 我問這裏是否同樣的問題是已知的石英/可可或相反,他們的表現相似的任務更好。我特別感興趣的是本機Quartz pdf渲染能力和後續的圖像縮放。Quartz/Cocoa與Qt4的圖像縮放性能

回答

0
NIRTimer *timer = [NIRTimer timer]; 
    [timer start]; 
    NSImage *image = [[NSImage alloc]initWithContentsOfFile:@"filename"]; 
    NSImage *scaledImage = [[NSImage alloc]initWithSize:NSMakeSize(720, 480)]; 
    [scaledImage lockFocus]; 
    [image drawInRect:NSMakeRect(0, 0, 720, 480) fromRect:NSZeroRect operation:NSCompositeSourceAtop fraction:1]; 
    [scaledImage unlockFocus]; 
    [image release]; 
    [scaledImage release]; 
    NSLog(@"time: %ld", [timer microseconds]); 

這是如何在Cocoa中縮放圖像,它需要80000微秒(0.08秒)。

+1

80,000μs是毫無意義的,除非您告訴我們系統是什麼,並將其與同一系統上的Qt4進行比較。 (對於縮放圖像,80 ms實際上非常慢) –

+0

在創建原始圖像後開始測量會更好,因爲這受磁盤I/O性能的影響。 –