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

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

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

2 ответа

Решение

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

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

Источник

ProTip: прочитайте документацию.

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

- (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);
}
Другие вопросы по тегам