나는 기본 C 배열에 UIImage
의 픽셀 데이터를 보유하고 있습니다 : 내 greyscaling 알고리즘 이제배열의 값을 변경할 수 없습니까? 내 프로그램에서
// It can be UInt8 as it is greyscaled, values can only be 0-255
@property (nonatomic, readwrite) UInt8 *imageData;
나는 그것을 초기화 :
는self.imageData = malloc(sizeof(UInt8) * width * height);
은 내가 데이터로 채우 나는 그레이 스케일. 이 작동합니다. 그러나, 나중의 알고리즘에서 나는 마술을 통해 0이나 255의 값을 만들었다. 그게 잘 작동하는 줄 알았는데 ... 나중에이 값들을 찾는 알고리즘은 1과 3을 얻고 있었다. 그래서 내가 가서 내가 0 또는 255로 0 ~ 255의 값을 변경 한 후 오른쪽이를 던졌다 :
// Magic loop. Starts with current value at pixelIndex, gets curVal.
self.imageData[pixelIndex] = curVal;
NSAssert(self.imageData[pixelIndex] != curVal, @"Whattt");
보라와 실제로 내 배열의 값을 변경하지 않습니다 보라. 내가 빠진 것이 있습니까? 이 배열은 한 번 설정된 다음 읽기 전용이됩니까? 나는 NSArrays가 그런 식으로 알고있다. 그러나 이것은 단순한 C 포인터 기반의 배열이다 ... 아니면 똑같은가?
이유가 무엇이든간에이 값을 올바르게 변경할 수 있도록하려면 어떻게해야합니까?
아 .. 젠장. 디버깅 드로잉 보드로 돌아와서 고마워요! – Alex