Position actuelle: Accueil> Derniers articles> Comment créer un effet de filtre rétro avec ImageConvolution? Partage des étapes et des conseils

Comment créer un effet de filtre rétro avec ImageConvolution? Partage des étapes et des conseils

M66 2025-06-26

Comment créer un effet de filtre rétro avec ImageConvolution ? Partage des étapes et des conseils

Dans les sites Web et applications modernes, les effets de filtre de style rétro sont souvent utilisés pour apporter une atmosphère et une émotion uniques à l'image. PHP fournit une riche bibliothèque de traitement d'image, parmi laquelle la fonction d'imageconvolution est un outil très puissant, qui peut appliquer des filtres de convolution aux images pour obtenir divers effets spéciaux. Aujourd'hui, nous partagerons comment utiliser la fonction ImageConvolution pour créer des effets de filtre rétro.

1. Qu'est-ce qu'un filtre convolutionnel?

Les filtres de convolution sont une technologie de traitement d'image qui modifie la couleur et la luminosité de l'image en appliquant une matrice de filtre (ou un noyau de convolution) à chaque pixel de l'image. La valeur de sortie de chaque pixel dépend de la moyenne pondérée des pixels qui l'entourent, et le poids est déterminé par la valeur de la matrice du filtre. En utilisant différentes matrices de filtre, les effets de l'affûtage, du flou, de la détection des bords et d'autres effets peuvent être obtenus, tandis que les filtres rétro utilisent des matrices spécifiques pour faire en sorte que l'image présente un style nostalgique et chaud.

2. Introduction à l'imageconvolution Fonction

Dans PHP, l'imageconvolution est une fonction utilisée pour effectuer des opérations de convolution. Son utilisation de base est la suivante:

 <span><span><span class="hljs-keyword">bool</span></span><span> </span><span><span class="hljs-title function_ invoke__">imageconvolution</span></span><span> ( resource </span><span><span class="hljs-variable">$image</span></span><span> , </span><span><span class="hljs-keyword">array</span></span><span> </span><span><span class="hljs-variable">$matrix</span></span><span> , </span><span><span class="hljs-keyword">float</span></span><span> </span><span><span class="hljs-variable">$divisor</span></span><span> , </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$offset</span></span><span> )
</span></span>
  • $ Image : la ressource d'image qui doit être traitée.

  • $ matrice : le noyau de convolution, c'est-à-dire un réseau bidimensionnel, définit le coefficient de pondération de chaque pixel.

  • $ Diviseur : Utilisé pour normaliser la valeur numérique d'une matrice, généralement la somme des valeurs de matrice.

  • $ Offset : le décalage ajouté au résultat du calcul Convolution, utilisé pour ajuster la luminosité.

3. Étapes pour atteindre l'effet de filtre rétro

  1. Chargement de l'image <br> Tout d'abord, nous devons charger une image pour y appliquer des filtres. Les images dans différents formats peuvent être chargées via des fonctions telles que ImageCreateFromJPEG () et ImageCreateFrommpng () .

  2. Définition de la matrice du filtre rétro <br> La clé des filtres rétro est d'utiliser le noyau de convolution approprié. Voici une simple matrice de filtre de style rétro qui peut rendre les tons de l'image légèrement plus chauds et améliorer certains ingrédients jaunes et rouges:

 <span><span><span class="hljs-variable">$matrix</span></span><span> = [
    [</span><span><span class="hljs-number">0.1</span></span><span>, </span><span><span class="hljs-number">0.2</span></span><span>, </span><span><span class="hljs-number">0.1</span></span><span>],
    [</span><span><span class="hljs-number">0.2</span></span><span>, </span><span><span class="hljs-number">1.0</span></span><span>, </span><span><span class="hljs-number">0.2</span></span><span>],
    [</span><span><span class="hljs-number">0.1</span></span><span>, </span><span><span class="hljs-number">0.2</span></span><span>, </span><span><span class="hljs-number">0.1</span></span><span>]
];
</span></span>

La fonction de cette matrice est d'améliorer subtilement et d'ajuster la couleur de l'image, donnant à l'image un effet rétro doux.

  1. Appliquer des opérations de convolution <br> Utilisez la fonction ImageConvolution pour appliquer la matrice ci-dessus à l'image. Pour obtenir un effet rétro, nous définissons les valeurs de diviseur et de décalage appropriées.

 <span><span><span class="hljs-variable">$image</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecreatefromjpeg</span></span><span>(</span><span><span class="hljs-string">'your-image.jpg'</span></span><span>); </span><span><span class="hljs-comment">// Chargement des images</span></span><span>
</span><span><span class="hljs-variable">$divisor</span></span><span> = </span><span><span class="hljs-number">1</span></span><span>; </span><span><span class="hljs-comment">// Aucune normalisation</span></span><span>
</span><span><span class="hljs-variable">$offset</span></span><span> = </span><span><span class="hljs-number">0</span></span><span>;  </span><span><span class="hljs-comment">// Aucun décalage de luminosité</span></span><span>

</span><span><span class="hljs-title function_ invoke__">imageconvolution</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>, </span><span><span class="hljs-variable">$matrix</span></span><span>, </span><span><span class="hljs-variable">$divisor</span></span><span>, </span><span><span class="hljs-variable">$offset</span></span><span>); </span><span><span class="hljs-comment">// Appliquer des filtres à convolution</span></span><span>
</span></span>
  1. Enregistrer ou sortir une image <br> Une fois le traitement terminé, vous pouvez utiliser ImageJPEG () , ImagePng () et d'autres fonctions pour enregistrer l'image traitée en tant que fichier, ou la publier directement au navigateur:

 <span><span><span class="hljs-title function_ invoke__">header</span></span><span>(</span><span><span class="hljs-string">'Content-Type: image/jpeg'</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">imagejpeg</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>); </span><span><span class="hljs-comment">// Sortir l&#39;image traitée</span></span><span>
</span><span><span class="hljs-title function_ invoke__">imagedestroy</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>); </span><span><span class="hljs-comment">// Détruiser les ressources d&#39;image,Mémoire libre</span></span><span>
</span></span>

4. Optimisation et techniques avancées

  1. Ajustez la teinte et la saturation <br> Pour rendre l'effet rétro plus évident, en plus des opérations de convolution, vous pouvez également utiliser d'autres techniques de traitement d'image telles que l'ajustement du ton, de la saturation ou du contraste. Avec ces ajustements, le style rétro de l'image sera plus important.

  2. Augmenter l'effet de bruit <br> Les images de style rétro sont souvent accompagnées d'un peu de bruit qui rend les images plus semblables à l'âge. Ces effets peuvent être simulés par de simples fonctions de bruit aléatoire.

  3. Combiner les filtres et les effets floues <br> Les filtres rétro peuvent être utilisés en combinaison avec des effets flous pour simuler davantage la sensation de vieilles photos. Par exemple, l'utilisation de la fonction ImageFilter () combinée avec le filtre de flou gaussien peut augmenter la douceur de l'image.

 <span><span><span class="hljs-title function_ invoke__">imagefilter</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>, IMG_FILTER_GAUSSIAN_BLUR); </span><span><span class="hljs-comment">// Blur gaussien</span></span><span>
</span></span>
  1. Utilisez un fond de gradient <br> Si votre filtre rétro est appliqué à une image avec un fond, essayez d'ajouter un effet de gradient à l'arrière-plan pour améliorer davantage l'atmosphère nostalgique.

  2. Matrice de couleurs rétro <br> Vous pouvez également modifier le biais de couleur en ajustant le poids de la composante RVB, tels que l'augmentation du poids du rouge et du vert et en réduisant le bleu pour créer un ton rétro jaune ou rouge.

5. Résumé

L'utilisation de la fonction ImageConvolution de PHP pour créer un effet de filtre rétro fournit non seulement un moyen simple et efficace de modifier l'apparence d'une image, mais permet également des effets rétro plus riches en ajustant le noyau de convolution et d'autres techniques de traitement d'image. En appliquant de manière flexible ces techniques, vous pouvez ajouter plus d'effets de traitement d'image artistiques à vos pages Web ou applications, offrant aux utilisateurs une expérience visuelle plus nostalgique.