В настоящее время я разрабатываю приложение, в котором у меня есть UIImageView, который пользователь может свободно перемещать, масштабировать и вращать жестами (я использую код Apple Touches), а затем у него есть возможность изменить его яркость с помощью UISlider. , Метод регулировки яркости прекрасно работает со всеми другими изображениями, но не с тем, который мне нужен для перемещения и воспроизведения, потому что, когда UIImageView начинает скользить, он начинает меняться, но через секунду приложение вылетает, не оставляя никакой информации в консоли Кстати, вот код, где jk - UIImage подвижного UIImageView, а imgVback - фактический подвижный UIImageView:
-(void)doImageStuff:(int)value{
UIImage *jk = imageK;
CGImageRef img=jk.CGImage;
CFDataRef dataref=CopyImagePixels(img);
UInt8 *data=(UInt8 *)CFDataGetBytePtr(dataref);
int length=CFDataGetLength(dataref);
for(int index=0;index<length;index+=4){
// BRIGHTNESS
for(int i=0;i<3;i++){
if(data[index+i]+value<0){
data[index+i]=0;
}else{
if(data[index+i]+value>255){
data[index+i]=255;
}else{
data[index+i]+=value;
}
}
}
}
size_t width=CGImageGetWidth(img);
size_t height=CGImageGetHeight(img);
size_t bitsPerComponent=CGImageGetBitsPerComponent(img);
size_t bitsPerPixel=CGImageGetBitsPerPixel(img);
size_t bytesPerRow=CGImageGetBytesPerRow(img);
CGColorSpaceRef colorspace=CGImageGetColorSpace(img);
CGBitmapInfo bitmapInfo=CGImageGetBitmapInfo(img);
CFDataRef newData=CFDataCreate(NULL,data,length);
CGDataProviderRef provider=CGDataProviderCreateWithCFData(newData);
CGImageRef newImg=CGImageCreate(width,height,bitsPerComponent,bitsPerPixel,bytesPerRow,colorspace,bitmapInfo,provider,NULL,true,kCGRenderingIntentDefault);
[imgVback setImage:[UIImage imageWithCGImage:newImg]];
CGImageRelease(newImg);
CGDataProviderRelease(provider);
}
Сначала я подумал, что что-то идет не так, комбинируя это с действием перемещения / масштабирования / вращения, но даже если я не добавляю никаких жестов в UIImageView, это все равно не работает
что я должен делать?