2011-08-11 9 views
0

QImage.scaled()メソッドまたはQPixmap.scaled()メソッドを使用して非常に遅くなったQt4でテストアプリケーションを作成しました。透視変換でさえも高速ですが、倍率変換は同じですが遅いです。 [私は直接QPainterをスケールアップしようとしましたが、paintEvent()をマスターしないので、常に「ペインターがアクティブではありません」、paintEvent()が呼び出されません。だから、私は画家がスケーリングを行うことを知らないのです。] 同じ問題がQuartz/Cocoaで知られているか、類似のタスクのパフォーマンスが良い場合は、ここで質問します。私は、ネイティブの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]); 

これは、ココアで画像をスケールする方法で、80000マイクロ秒(0.08秒)かかります。

+1

あなたが私たちにどんなシステムを教えて、それを同じシステム上のQt4と比較しない限り、80,000μsは無意味です。 (画像のスケーリングには実際には80msがかなり遅いです) –

+0

元の画像が作成された後は、ディスクのI/Oパフォーマンスの影響を受けるため、測定を開始する方がよいでしょう。 –