iPhone. Как изменить отдельные пиксели большого CGImage на месте? - PullRequest
0 голосов
/ 20 июля 2010

Я использую UIScrollView, который увеличивает и прокручивает UIImageView, который содержит UIImage, которые берут пиксели из CGImage. Размер CGImage может быть около 5000x2000 пикселей. 1) Это правильный способ увеличения и прокрутки большого изображения?

Некоторая логика может периодически менять некоторую область (прямоугольник) в этом CGImage 2) Как я могу изменить отдельные пиксели в CGImage без использования процессора (работа с изображением целиком)?

1 Ответ

0 голосов
/ 21 июля 2010

мое решение:

  • Я создаю CGBitmapContext для хранения большого изображения в формате XRGB.
  • Подкласс UIView для переопределения drawRect: которые представляют мое изображение

Периодические обновления делают так:

  • обновить некоторые прямоугольники
  • invoke [setNeedsDisplayInRect: rect]

в [drawRect: rect] do:

  CGContextRef g = UIGraphicsGetCurrentContext();
  CGImageRef imgAll = CGBitmapContextCreateImage( m_BmpContext );
  CGImageRef imgRect = CGImageCreateWithImageInRect( imgAll, rect );
  CGContextDrawImage( g, rect, imgRect );
  CGImageRelease( imgRect );
  CGImageRelease( imgAll );

и у меня это нормально работает

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...