Iphone получить разрешение фото программно

Есть способ программно получить размеры фотографии, сделанной на айфон? Я хочу получить размеры напрямую, не проходя через версию модели, поэтому это решение не может быть действительным:

проверить версию модели -> написать словарь с размерами каждой модели iphone -> взять правильный индекс


person Cri1682    schedule 10.09.2012    source источник


Ответы (2)


Когда вы делаете снимок, вы получаете UIImage.

Объекты UIImage имеют метод -(CGSize)size, который возвращает размеры изображения в точках. Вы должны умножить его на свойство масштаба, чтобы получить пиксели.

Источник

Профессиональный совет: прочтите документацию.

person EmilioPelaez    schedule 10.09.2012
comment
вышеизложенное даст разрешение? - person Jigar Pandya; 10.09.2012
comment
Разрешение определяется шириной на высоту в пикселях (делится на 1M и округляется до 1-го десятичного знака, чтобы получить мегапиксели) - person Teejay; 10.09.2012

Попробуйте этот код для получения максимального разрешения камеры:

- (CMVideoDimensions) getCameraMaxStillImageResolution:(AVCaptureDevicePosition) cameraPosition {

    CMVideoDimensions max_resolution;
    max_resolution.width = 0;
    max_resolution.height = 0;

    AVCaptureDevice *captureDevice = nil;

    NSArray *devices = [AVCaptureDevice devicesWithMediaType:AVMediaTypeVideo];
    for (AVCaptureDevice *device in devices) {
        if ([device position] == cameraPosition) {
            captureDevice = device;
            break;
        }
    }
    if (captureDevice == nil) {
        return max_resolution;
    }

    NSArray* availFormats=captureDevice.formats;

    for (AVCaptureDeviceFormat* format in availFormats) {
        CMVideoDimensions resolution = format.highResolutionStillImageDimensions;
        int w = resolution.width;
        int h = resolution.height;
        if ((w * h) > (max_resolution.width * max_resolution.height)) {
            max_resolution.width = w;
            max_resolution.height = h;
        }
    }

    return max_resolution;
}

- (void) printCamerasInfo {
    CMVideoDimensions res;
    res = [self getCameraMaxStillImageResolution:AVCaptureDevicePositionBack];
    NSLog(@" Back  Camera max Image resolution: %d x %d", res.width, res.height);
    res = [self getCameraMaxStillImageResolution:AVCaptureDevicePositionFront];
    NSLog(@" Front Camera max Image resolution: %d x %d", res.width, res.height);
}
person Dmitry Soldatenkov    schedule 11.08.2016