У меня есть UIImagePickerViewController, где пользователь делает снимок. Моя проблема заключается в том, как узнать, прежде чем загружать фотографию на сервер, если пользователь отправляет темную фотографию. Я имею в виду абсолютно или почти черный цвет.Как узнать, является ли фотография черной или слишком темной?
я исследовал, и я нашел это:
const UInt8 *pixels = CFDataGetBytePtr(imageData);
UInt8 blackThreshold = 10; // or some value close to 0
int bytesPerPixel = 4;
for(int x = 0; x < width1; x++) {
for(int y = 0; y < height1; y++) {
int pixelStartIndex = (x + (y * width1)) * bytesPerPixel;
UInt8 alphaVal = pixels[pixelStartIndex]; // can probably ignore this value
UInt8 redVal = pixels[pixelStartIndex + 1];
UInt8 greenVal = pixels[pixelStartIndex + 2];
UInt8 blueVal = pixels[pixelStartIndex + 3];
if(redVal < blackThreshold && blueVal < blackThreshold && greenVal < blackThreshold) {
//This pixel is close to black...do something with it
}
}
}
Однако, я не знаю, как применить алгоритм.