производительность масштабирования изображения в Quartz / Cocoa против Qt4 - PullRequest
0 голосов
/ 11 августа 2011

Я написал тестовое приложение в Qt4, которое использует методы QImage.scaled () или QPixmap.scaled (), которые оказались очень медленными. Даже перспективное преобразование быстрее, в то время как масштабное преобразование такое же медленное. [Я пытался масштабировать напрямую QPainter, но я не справляюсь с paintEvent (), поэтому я всегда получаю сообщение «Painter not active» или paintEvent () вообще не вызывается Так что я не знаю, как работает художник. Я спрашиваю здесь, известна ли та же проблема для Кварца / Какао или вместо этого их производительность для подобных задач лучше. Меня особенно интересует возможность рендеринга в Quartz pdf и последующее масштабирование изображения.

1 Ответ

0 голосов
/ 12 августа 2011
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 секунды).

...