Поиск цвета определенного пикселя в UIImageView

Я работаю над приложением для рисования и хочу создать менеджер отмены. Я сохраняю значение координаты пикселя для каждого места, где пользователь рисует, но я также хочу сохранить старый цвет пикселя точки, где пользователь рисовал, чтобы я мог отменить его для соответствующего цвета. Но я не могу этого сделать. Кто-нибудь может помочь.

Вот код, который я сейчас использую для получения цвета пикселя:

UIGraphicsBeginImageContext(self.tempDrawImage.frame.size);
CGContextRef context = UIGraphicsGetCurrentContext();
int bpr = CGBitmapContextGetBytesPerRow(context);
unsigned char * data = CGBitmapContextGetData(context);
if (data!=NULL)
{
    int offset = bpr*(lastPoint.y)+ 4*(lastPoint.x);
    NSLog(@"Red : %d",data[offset+0]);
    NSLog(@"Green : %d",data[offset+1]);
    NSLog(@"Blue : %d",data[offset+2]);
}

person Santosh    schedule 28.01.2014    source источник
comment
может быть, этот вопрос поможет вам заголовок stackoverflow.com/questions/21028952/   -  person Saad Chaudhry    schedule 28.01.2014
comment
и ответ Паска слишком ясен   -  person Saad Chaudhry    schedule 28.01.2014
comment
Но ответ parc по-прежнему возвращает только 0.   -  person Santosh    schedule 28.01.2014
comment
ваш вопрос и его описание не соответствуют Finding colour of specific pixel on UIImageView, и ваш код показывает, что вы получаете определенный пиксель. Теперь, если вы хотите что-то нарисовать на изображении, я предлагаю вам сначала сделать копию, а затем вернуться к ней при перерисовке или отмене.   -  person Saad Chaudhry    schedule 28.01.2014


Ответы (2)


Лучшим решением для этого является использование класса категории UIImage+ColorAtPixel UIImage. Я использовал это, очень красиво и идеально.

person Vinay Jain    schedule 28.01.2014

Вы можете создавать копию своего изображения каждый раз перед началом изменения рисунка изображения (например, непосредственно перед тем, как пользователь коснется экрана).

person Miroslav    schedule 28.01.2014