J'utilise GPUImage sur iOS. Je rencontre des problèmes pour transformer (mettre à l'échelle) une GPUImagePicture avec GPUImageTransformFilter et la fusionner dans une vidéo.GPUImage - Correspondance de GPUImageTransformFilter pour corriger la taille pour le mélange
overlayImage = [[GPUImagePicture alloc] initWithImage:[UIImage imageNamed:@"Sticker"] smoothlyScaleOutput:YES];
blendFilter = [GPUImageAlphaBlendFilter new];
transformFilter = [GPUImageTransformFilter new];
// [transformFilter forceProcessingAtSize:?????];
transformFilter.affineTransform = CGAffineTransformMakeScale(0.2f, 0.2f);
[overlayImage addTarget:transformFilter];
[videoCamera addTarget:blendFilter];
[overlayImage addTarget:blendFilter];
[overlayImage processImage];
[videoCamera startCameraCapture];
Le résultat incorrect, je reçois est que l'image montre non transformé - il est toujours en taille réelle, comme si le filtre transformation n'a jamais été appliqué.
Est-il correct que le GPUImagePicture transformé doit être traité à la même taille exacte que l'autre contenu du filtre de mélange?
Si oui, comment faire? Dois-je utiliser forceProcessingAtSize? Et puis-je obtenir la taille en interrogeant quelque chose, comme la session de videoCamera? J'ai essayé de définir forceProcessingAtSize à la taille de AVCaptureSessionPreset, 640x480, mais cela n'a pas aidé.
Merci
Merci pour votre réponse - J'aime GPUImage! Le problème que j'avais lors de l'ajout du filtre de fusion en tant que cible pour le filtre de transformation était que la sortie entière était juste blanche, et j'avais vu quelques exemples de code ailleurs qui ne transformaient jamais transformfilter.addTarget lors du traitement d'une image fixe. Je pensais que je faisais juste la mauvaise chose en ajoutant des cibles au filtre de transformation. – Cloov