簡體   English   中英

如何在執行CIFilter時保留iOS UIImageView中的圖像寬高比,如CISepiaTone

[英]How to preserve image aspect ratio in iOS UIImageView when doing CIFilter, like CISepiaTone

在iOS中,我的UIImageView是“Aspect Fit”,但是當我執行類型為“CISepiaTone”的CIFilter時,我會丟失原始圖像寬高比。 圖像被拉伸到整個UIImageView大小。

如何保留縱橫比?

如果使用imageWithCIImage創建過濾后的圖像,則無法獲得正確的寬高比。 嘗試從過濾器輸出CIImage創建CGImageRef,然后從CGImageRef創建UIImage。

例:

// assume you already have CIImage *outputImage and *inputImage declared

// convert to CGImage to maintain proper aspect ratio and dimensions
CIContext *context = [CIContext contextWithOptions:nil];
CGImageRef imageRef = [context createCGImage:outputImage fromRect:inputImage.extent];
UIImage *filteredImage = [UIImage imageWithCGImage:imageRef];
CGImageRelease(imageRef);

然后,您可以嘗試使用filteredImage設置imageView。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM