天天看點

iOS GPUImage研究六:為視訊添加圖檔水印

前言:

我們在前面已經做了關于、GPUImage導入方式、濾鏡介紹、性能對比、圖檔處理、捕獲照片處理、實時濾鏡以及一個比較完整地Demo。
           

今天:

我們來給攝像頭添加一個實時視訊水印,很簡單,大概有60行代碼。
           

關于如何導入GPUImage,請看這裡:

http://blog.csdn.net/xoxo_x/article/details/60323297

效果圖:

使用一張美女圖檔作為圖檔水印,然後擷取攝像頭資料。将二者組合,可以看到顔色的疊加,但又似乎不是簡單地疊加。
           
iOS GPUImage研究六:為視訊添加圖檔水印

代碼概覽如下:

iOS GPUImage研究六:為視訊添加圖檔水印

原理如下:

GPUImagePicture、GPUImageVideoCamera均可作為紋理來源,我們将兩個紋理來源交給混合濾鏡,混合濾鏡将兩種紋理按相乘顔色照矩陣的方式組合成新的紋理。
           

GPUImageView可作為輸出源,将紋理展現給我們。

首先我們需要了解GPUImage提供的濾鏡:

http://blog.csdn.net/xoxo_x/article/details/57082804

視訊水印用到的是混合濾鏡

、Color adjustments:  filters, 顔色處理相關
    、Image processing:  filters, 圖像處理相關.
    、Blending modes:  filters, 混合模式相關.
    、Visual effects:  filters, 視覺效果相關.
           

原理圖:

iOS GPUImage研究六:為視訊添加圖檔水印

那麼,換一種情況:為已經現有視訊A添加圖檔水印

使用的是GPUImageMovie作為輸入源,來代替GPUImageVideoCamera,其餘不變。
           

那麼,換一種情況:使用現有視訊A作為實時視訊水印

GPUImageVideoCamera不變,通過改變紋理來源,即通過使用GPUImageVideoFile來擷取視訊水印,作為紋理,代替使用GPUImagePicture。這樣,我們就可以制作關于視訊的視訊水印了。
           

那麼,換一種情況:使用現有視訊A 作為 現有視訊B 的 水印

二者均使用的是GPUImageMovie作為輸入源
           

那麼,換一種情況:使用現有圖檔A 作為 現有圖檔B 的 水印

二者均使用的是GPUImagePicture作為輸入源
不過,這個似乎有些奇怪,實驗結果,就是兩張照片融合到了一起,有點像換場動畫。
           

歡迎打賞 – 打賞後可加好友哦 O(∩_∩)O哈哈~

iOS GPUImage研究六:為視訊添加圖檔水印

繼續閱讀