簡體   English   中英

我正在使用CIFilter來獲取模糊圖像,但是為什么輸出圖像總是大於輸入圖像?

[英]I am using CIFilter to get a blur image,but why is the output image always larger than input image?

代碼如下:

CIImage *imageToBlur = [CIImage imageWithCGImage: self.pBackgroundImageView.image.CGImage];
CIFilter *blurFilter = [CIFilter filterWithName: @"CIGaussianBlur" keysAndValues: kCIInputImageKey, imageToBlur, @"inputRadius", [NSNumber numberWithFloat: 10.0], nil];
CIImage *outputImage = [blurFilter outputImage];
UIImage *resultImage = [UIImage imageWithCIImage: outputImage];

例如,輸入圖像的大小為(640.000000,1136.000000),而輸出圖像的大小為(700.000000,1196.000000)

任何建議表示贊賞。

這是對您的問題的最新回答,但是主要問題是您正在將CIImage視為圖像。 不是,它是圖像的“配方”。 因此,當您對其應用模糊濾鏡時,Core Image會計算出該圖像以顯示模糊的每個最后像素,您將需要一個更大的畫布。 用來繪制整個圖像的估計大小稱為“范圍”。 從本質上講,每個像素都在“散布”,這意味着最終范圍將大於原始畫布。 由您決定范圍的哪一部分對您的繪圖例程有用。

暫無
暫無

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

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