leoxing1996
add midas manually
b18cfd3
// Copyright 2019 The TensorFlow Authors. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
// =============================================================================
import Accelerate
import Foundation
extension CGSize {
/// Returns `CGAfineTransform` to resize `self` to fit in destination size, keeping aspect ratio
/// of `self`. `self` image is resized to be inscribe to destination size and located in center of
/// destination.
///
/// - Parameter toFitIn: destination size to be filled.
/// - Returns: `CGAffineTransform` to transform `self` image to `dest` image.
func transformKeepAspect(toFitIn dest: CGSize) -> CGAffineTransform {
let sourceRatio = self.height / self.width
let destRatio = dest.height / dest.width
// Calculates ratio `self` to `dest`.
var ratio: CGFloat
var x: CGFloat = 0
var y: CGFloat = 0
if sourceRatio > destRatio {
// Source size is taller than destination. Resized to fit in destination height, and find
// horizontal starting point to be centered.
ratio = dest.height / self.height
x = (dest.width - self.width * ratio) / 2
} else {
ratio = dest.width / self.width
y = (dest.height - self.height * ratio) / 2
}
return CGAffineTransform(a: ratio, b: 0, c: 0, d: ratio, tx: x, ty: y)
}
}