聊下圖片濾鏡,手機上的,lookup table(顏色查找表


今天這里要介紹的是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相關的文件夾內,大家可以找一找。





免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM