Blame view
App/camera/ALCameraLib/Utilities/Utilities.swift
3.81 KB
|
1341bf603
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 |
//
// ALUtilities.swift
// ALCameraViewController
//
// Created by Alex Littlejohn on 2015/06/25.
// Copyright (c) 2015 zero. All rights reserved.
//
import UIKit
import AVFoundation
internal func radians(_ degrees: Double) -> Double {
return degrees / 180 * M_PI
}
internal func localizedString(_ key: String) -> String {
return NSLocalizedString(key, tableName: CameraGlobals.shared.stringsTable, bundle: CameraGlobals.shared.bundle, comment: key)
}
internal func currentRotation(_ oldOrientation: UIInterfaceOrientation, newOrientation: UIInterfaceOrientation) -> Double {
switch oldOrientation {
case .portrait:
switch newOrientation {
case .landscapeLeft: return 90
case .landscapeRight: return -90
case .portraitUpsideDown: return 180
default: return 0
}
case .landscapeLeft:
switch newOrientation {
case .portrait: return -90
case .landscapeRight: return 180
case .portraitUpsideDown: return 90
default: return 0
}
case .landscapeRight:
switch newOrientation {
case .portrait: return 90
case .landscapeLeft: return 180
case .portraitUpsideDown: return -90
default: return 0
}
default: return 0
}
}
internal func largestPhotoSize() -> CGSize {
let scale = UIScreen.main.scale
let screenSize = UIScreen.main.bounds.size
let size = CGSize(width: screenSize.width * scale, height: screenSize.height * scale)
return size
}
internal func errorWithKey(_ key: String, domain: String) -> NSError {
let errorString = localizedString(key)
let errorInfo = [NSLocalizedDescriptionKey: errorString]
let error = NSError(domain: domain, code: 0, userInfo: errorInfo)
return error
}
internal func normalizedRect(_ rect: CGRect, orientation: UIImageOrientation) -> CGRect {
let normalizedX = rect.origin.x
let normalizedY = rect.origin.y
let normalizedWidth = rect.width
let normalizedHeight = rect.height
var normalizedRect: CGRect
switch orientation {
case .up, .upMirrored:
normalizedRect = CGRect(x: normalizedX, y: normalizedY, width: normalizedWidth, height: normalizedHeight)
case .down, .downMirrored:
normalizedRect = CGRect(x: 1-normalizedX-normalizedWidth, y: 1-normalizedY-normalizedHeight, width: normalizedWidth, height: normalizedHeight)
case .left, .leftMirrored:
normalizedRect = CGRect(x: 1-normalizedY-normalizedHeight, y: normalizedX, width: normalizedHeight, height: normalizedWidth)
case .right, .rightMirrored:
normalizedRect = CGRect(x: normalizedY, y: 1-normalizedX-normalizedWidth, width: normalizedHeight, height: normalizedWidth)
}
return normalizedRect
}
internal func flashImage(_ mode: AVCaptureFlashMode) -> String {
let image: String
switch mode {
case .auto:
image = "flashAutoIcon"
case .on:
image = "flashOnIcon"
case .off:
image = "flashOffIcon"
}
return image
}
struct ScreenSize {
static let SCREEN_WIDTH = UIScreen.main.bounds.size.width
static let SCREEN_HEIGHT = UIScreen.main.bounds.size.height
static let SCREEN_MAX_LENGTH = max(ScreenSize.SCREEN_WIDTH, ScreenSize.SCREEN_HEIGHT)
}
struct DeviceConfig {
static let SCREEN_MULTIPLIER : CGFloat = {
if UIDevice.current.userInterfaceIdiom == .phone {
switch ScreenSize.SCREEN_MAX_LENGTH {
case 568.0: return 1.5
case 667.0: return 2.0
case 736.0: return 4.0
default: return 1.0
}
} else {
return 1.0
}
}()
}
|