У меня есть IKImageView, и я помещаю в него CGImages (который я делаю из NSImages).Однако нормальная страница 200DPI 8.5 / 11 занимает около 3 секунд, появляясь в прямоугольниках около 2 дюймов (экран) по бокам за раз.Это действительно раздражает.Есть ли способ обойти это?
В качестве альтернативы, есть ли способ удвоить представление буфера?Иметь 2 IKImageViews и рисовать в одном, а затем отображать его?
ETA: удвоение моих прокручиваемых обзоров (с ikimageviews внутри) и затем рисование в них, а затем их скрытие, похоже, не помогает ...или, может быть, это немного помогает, но не сильно
Я немного поковырялся с инструментами и обнаружил, что в memcopy выполняется много работы:
22 commpage [libSystem.B.dylib] 78.0 __memcpy
21 ImageIO 37.0 CGImageReadGetBytesAtOffset
20 ImageIO 37.0 CGImageReadSessionGetBytes
19 ImageIO 37.0 myTIFFReadProc
18 libTIFF.dylib 37.0 TIFFReadRawStrip1
17 libTIFF.dylib 37.0 TIFFFillStrip
16 libTIFF.dylib 37.0 _cg_TIFFReadEncodedStrip
15 ImageIO 37.0 copyImageBlockSetTIFF
14 ImageIO 37.0 ImageProviderCopyImageBlockSetCallback
13 CoreGraphics 37.0 CGImageProviderCopyImageBlockSet
12 CoreGraphics 37.0 img_blocks_create
11 CoreGraphics 37.0 img_blocks_extent
10 CoreGraphics 37.0 img_interpolate_extent
9 CoreGraphics 37.0 img_data_lock
8 CoreGraphics 37.0 CGSImageDataLock
7 libRIP.A.dylib 37.0 ripc_AcquireImage
6 libRIP.A.dylib 37.0 ripc_DrawImage
5 CoreGraphics 37.0 CGContextDrawImage
4 ImageKit 37.0 -[IKImageLayer drawInContext:]
3 QuartzCore 37.0 tiled_layer_render(_CAImageProvider*, unsigned int, unsigned int, unsigned int, unsigned int, void*)
2 QuartzCore 37.0 CAImageProviderThread(void*)
1 libSystem.B.dylib 37.0 _pthread_wqthread
0 libSystem.B.dylib 37.0 start_wqthread
Я не уверен, что это говорит мне, хотя ...
РЕДАКТИРОВАТЬ: Для записи, проблема в НЕ размер данных.У меня есть старая версия программы, которая использует устаревшие вызовы метода quickdraw.Когда я увеличиваю изображение до 300%, так что один пиксель экрана = один пиксель изображения, поэтому для него нужно использовать все изображение целиком, он ЕДЕТ масштабировать прямо вдоль страницы за страницей.
Меня высмеивает парень, который написал это первоначально, потому что его версия движется быстрее на его древней 10.3 G5, чем на моей современной коробке Intel.быстрее как минимум в 10 раз.