간단한 필터 앱을 만들고 있습니다. 나는 PNG (PNG는 방향 데이터 플래그가 없음) 인 카메라 롤에서 이미지를로드하고 너비가 너비보다 크면, 이미지에 특정 왜곡 필터를 적용하면 이미지가 회전되어 스스로 표시된다는 것을 발견했습니다 마치 풍경 이미지입니다.높이> 너비 인 경우 PNG에 필터를 적용하면 이미지가 90도 회전합니다. 어떻게 효과적으로 이것을 막을 수 있습니까?
내가 열었던 많은 탭에서 아래의 기술을 온라인 어딘가에 발견했으며 원하는대로 정확하게 수행하는 것으로 보인다. 이미지가 처음로드되었을 때 이미지의 원래 크기와 방향을 사용합니다.
let newImage = UIImage(CIImage:(output), scale: 1.0, orientation: self.origImage.imageOrientation)
하지만 난 그것을 사용하려고하면이 내가 얻을 경고입니다 : 모든
//global variables
var image: UIImage!
var origImage: UIImage!
func setFilter(action: UIAlertAction) {
origImage = image
// make sure we have a valid image before continuing!
guard let image = self.imageView.image?.cgImage else { return }
let openGLContext = EAGLContext(api: .openGLES3)
let context = CIContext(eaglContext: openGLContext!)
let ciImage = CIImage(cgImage: image)
let currentFilter = CIFilter(name: "CIBumpDistortion")
currentFilter?.setValue(ciImage, forKey: kCIInputImageKey)
if let output = currentFilter?.value(forKey: kCIOutputImageKey) as? CIImage{
//the line below is the one giving me errors which i thought would work.
let newImage = UIImage(CIImage:(output), scale: 1.0, orientation: self.image.imageOrientation)
self.imageView.image = UIImage(cgImage: context.createCGImage(newImage, from: output.extent)!)}
필터 :
이Ambiguous use of 'init(CIImage:scale:orientation:)'
여기에 내가 작업을 얻기 위해 노력하고있어 모든 일이 내가 유감 인 이유로 불행하게도 위에서 설명한 이미지를 90도 회전시킵니다.
UIimage의 방향을 확인하고 CIimage를 Uiimage로 변환하고 확장을 사용하여 Ciimage로 다시 변환하거나 UIimage를 imageView로로드하는 등의 다른 방법을 시도했습니다. 산출. 나는 그 과정에 걸린 뒤 걸렸습니다. 나는 단지 특정 이미지를 기본 방향으로 가져 오기 위해 정말 복잡한 것처럼 보였습니다.
모든 조언을 크게 높이세요!
편집 : 나는 방법 내가하려고했던 얻었다을 heres 여기서 When applying a filter to a UIImage the result is upside down
저는 개인적으로이 답변을 사용했습니다 : http://stackoverflow.com/a/41247037/6855532 확장은 깨끗한 접근입니다. – karnett
고맙습니다. 제 CIimage를 다음과 같은 UIimage로 변환 해 보았습니다. let image = UIImage (CIImage : ciimage)가 제공 한 확장자를 사용하면 변환이 'init (CIImage :) error'라는 모호한 사용을하게됩니다. Ciimage를 올바르게 uiimage로 변환하는 방법에 대한 아이디어가 있습니까? – genericguy25
감사합니다. 나는 또한 내가 사용하고있는 CIImage를 uiimage로 변환하는 데 도움이 필요합니다. 어떤 추천? – genericguy25