2017-03-06 73 views
0

[我在這裏輸入圖片描述] [1]我將亮度和對比度應用於圖像。但是在比較輸入圖像時輸出圖像的大小不一樣。輸出圖像被左右兩側裁剪,但我希望輸入和輸出圖像的大小相同。代碼如下...當將CIImage轉換爲CGImage時,尺寸不被維護

let aCGImage = image?.CGImage; 
self.aCIImage = CIImage(CGImage: aCGImage!) 
self.context = CIContext(options: nil); 
self.contrastFilter = CIFilter(name: "CIColorControls"); 
self.contrastFilter.setDefaults() 
self.contrastFilter.setValue(self.aCIImage, forKey: "inputImage") 

self.contrastFilter.setValue(1.5, forKey: "inputContrast") 
self.contrastFilter.setValue(0.1, forKey: "inputBrightness") 
let cgimg = self.context.createCGImage(self.contrastFilter.outputImage!, fromRect: self.contrastFilter.outputImage!.extent) 

self.newUIImage = UIImage(CGImage: cgimg!) 

我輸入圖像是正常的模擬器照片庫的默認圖像,並輸出圖像如下... 輸出圖像After add contrast and brightness

+0

如果你提供輸入和輸出圖像的例子,這將是很好的,所以我們可以清楚地看到問題所在。 – kelin

+0

我的帖子被編輯..請檢查 –

回答

0

我不知道,爲什麼你的形象裁剪,但要保持轉換CGImage到UIImage的時候,你應該指定規模的大小:

self.newUIImage = UIImage(cgImage: cgimg, 
          scale: image.scale, 
          orientation: image.imageOrientation) 

這是斯威夫特3碼,但斯威夫特2將是非常相似的。

+0

感謝您的回答,但我仍然有同樣的問題。 –