mirror of
https://github.com/status-im/react-native-transparent-video.git
synced 2025-01-24 21:49:16 +00:00
6640e69a81
Signed-off-by: Brian Sztamfater <brian@status.im>
31 lines
960 B
Swift
31 lines
960 B
Swift
//
|
|
// CIImage+Split.swift
|
|
// MyTransparentVideoExample
|
|
//
|
|
// Created by Quentin Fasquel on 27/03/2020.
|
|
// Copyright © 2020 Quentin Fasquel. All rights reserved.
|
|
//
|
|
|
|
import CoreImage
|
|
|
|
extension CIImage {
|
|
|
|
typealias VerticalSplit = (topImage: CIImage, bottomImage: CIImage)
|
|
|
|
func verticalSplit() -> VerticalSplit {
|
|
let outputExtent = self.extent.applying(CGAffineTransform(scaleX: 1.0, y: 0.5))
|
|
|
|
// Get the top region according to Core Image coordinate system, (0,0) being bottom left
|
|
let translate = CGAffineTransform(translationX: 0, y: outputExtent.height)
|
|
let topRegion = outputExtent.applying(translate)
|
|
var topImage = self.cropped(to: topRegion)
|
|
// Translate topImage back to origin
|
|
topImage = topImage.transformed(by: translate.inverted())
|
|
|
|
let bottomRegion = outputExtent
|
|
let bottomImage = self.cropped(to: bottomRegion)
|
|
|
|
return (topImage, bottomImage)
|
|
}
|
|
}
|