2016-11-17 1 views
0

Je tente de créer un effet sur une image à l'aide de GPUImage. J'ajoute une vignette à une image pour produire un filtre inspiré d'Instagram. Actuellement, j'utilise un GPUImageVignetteFilter pour y parvenir. Le filtre fonctionne, mais je cherche un moyen de diminuer l'opacité de ce filtre, ou de le mélanger comme un effet Photoshop. Code actuel:Ajout d'un filtre de vignettes GPUImage avec l'opacité

let sourceImage = GPUImagePicture(image: "Nothing.png") 
    let vignetteFilter = GPUImageVignetteFilter() 
    vignetteFilter.vignetteColor = GPUVector3(one: 77.0/255.0, two: 3.0/255.0, three: 188.0/255.0) 
    vignetteFilter.vignetteStart = 0 
    vignetteFilter.vignetteEnd = 1.2 
    sourceImage?.addTarget(vignetteFilter) 
    vignetteFilter.useNextFrameForImageCapture() 
    sourceImage?.processImage() 

    let newImage = vignetteFilter.imageFromCurrentFramebuffer() 

Effet actuel:

enter image description here

effet désiré:

enter image description here

photo originale:

enter image description here

Toute aide serait appréciée!

Répondre

0

Pour quiconque souhaitant ajouter des vignettes avec alpha, il n'est actuellement pas pris en charge par l'image GPU actuelle. Il y a une fourchette par Drew Wilson (https://github.com/drewwilson/GPUImage) qui ajoute une propriété vignetteAlpha au filtre. Cela a fonctionné comme un charme. Espérons qu'il sera ajouté à la branche principale à l'avenir!