標籤:and use input auto output ram gen 尋找 orm
今天這裡要介紹的是lookup table(顏色尋找表),簡而言之就是通過將每一個原始的顏色進行轉換之後成為一個新的顏色。
打一個比方,比如原始顏色是紅色(r:255,g:0,b:0),進行轉換後變為綠色(r:0,g:255,b:0),以後所有是紅色的地方都會被自動轉換為綠色。
而顏色尋找表就是將所有的顏色進行一次(矩陣)轉換,而很多的濾鏡功能就是提供了這麼一個轉換的矩陣,在原始色彩的基礎上進行顏色的轉換。
引:謝灰灰在找胡蘿蔔
連結:https://www.jianshu.com/p/b470a5b5a560 Original Lookup Table
然而IOS內建的影像處理API中並沒有提供顏色尋找表相關的內容。即使如此,善解人意的GPUImage的大大們給我們提供了一個相關的介面,今天就來簡單的介紹一下用法。
1 圖片添加濾鏡效果
資源:一張圖片(隨意),photoshop
a)在photoshop中載入原始圖片
原始樣本圖片
b)調整photoshop中的調整面板,對映像進行調整,並達到滿意的效果。
在該調整面板對映像進行調整
調整後的映像
c)在達到滿意的效果之後,對original lookup table(原始顏色尋找表)進行一次相同的調整操作
調整前
調整後
d)將調整後得到的lookup table另存新檔NewLookupTable.png
2 代碼中引用lookup table
GPUImage是一個相當出名的第三方影像處理庫,這裡就不對這個庫進行介紹了。
GPUImage中有一個專門針對lookup table進行處理的濾鏡函數GPUImageLookupFilter,使用這個函數就可以直接對圖片進行濾鏡添加操作了。
//originalImg是你希望添加濾鏡的原始圖片
- (UIImage *)applyFIlter:(UIImage *)originalImg {
UIImage *inputImage =originalImg;
UIImage *outputImage = nil;
GPUImagePicture *stillImageSource = [[GPUImagePicture alloc] initWithImage:inputImage];
//添加濾鏡
GPUImageLookupFilter *lookUpFilter = [[GPUImageLookupFilter alloc] init];
//匯入之前儲存的NewLookupTable.png檔案
GPUImagePicture *lookupImg = [[GPUImagePicturealloc] initWithImage:[UIImageimageNamed: @“NewLookupTable.png”]];
[lookupImg addTarget:lookUpFilteratTextureLocation:1];
[stillImageSource addTarget:lookUpFilteratTextureLocation:0];
[lookUpFilter useNextFrameForImageCapture];
if([lookupImg processImageWithCompletionHandler:nil] && [stillImageSource processImageWithCompletionHandler:nil]) {
outputImage= [lookUpFilterimageFromCurrentFramebuffer];
}
return outputImage;
}
就這樣濾鏡就可以添加成功了,很簡單把,哈哈。
對了哈,GPUImage這個庫裡面會有一張lookup table的圖片的,在GPUImageLookupFilter相關的檔案夾內,大家可以找一找。
聊片濾鏡,手機上的,lookup table(顏色尋找表