Pendant le traitement de l'image, le recadrage et le filtrage sont les deux fonctions les plus couramment utilisées. La combinaison raisonnable des deux peut réaliser des effets spéciaux d'image riches, améliorer la qualité de l'image ou créer des effets artistiques. Dans cet article, nous expliquerons en détail comment utiliser ImageGetClip pour réaliser le recadrage d'images et améliorer l'effet du filtre. Cet article prend le langage PHP à titre d'exemple, combine des extensions GD pour fonctionner et affiche l'utilisation spécifique via un exemple de code.
ImageGetClip () n'est pas une fonction intégrée pour PHP, mais est généralement une fonction définie par le développeur pour extraire une zone (c'est-à-dire la culture) à partir d'une image. Son idée principale est de créer une nouvelle ressource d'image et de copier la zone spécifiée de l'image d'origine.
Donnons un exemple simple de fonctions de recadrage:
function imagegetclip($srcImage, $x, $y, $width, $height) {
$clip = imagecreatetruecolor($width, $height);
imagecopy($clip, $srcImage, 0, 0, $x, $y, $width, $height);
return $clip;
}
PHP GD fournit une fonction ImageFilter () pour appliquer divers filtres, y compris le flou, l'affûtage, l'évolution des gris, le réglage des couleurs, etc. par exemple:
imagefilter($image, IMG_FILTER_GRAYSCALE); // Se transformer en niveaux de gris
Vous pouvez appliquer le filtre après le recadrage de l'image, ou vous pouvez d'abord appliquer le filtre, puis le recadrer. Les deux sont dans des ordres différents et les effets sont également différents.
Utilisons un exemple complet pour démontrer comment recadrer une zone à partir de l'image d'origine, appliquer un filtre flou sur cette zone, puis enregistrer:
// Chargez l'image d'origine
$sourcePath = 'https://gitbox.net/images/sample.jpg';
$sourceImage = imagecreatefromjpeg($sourcePath);
// Recadrer la zone d'image(Par exemple, de(50, 50)Recadrer300x200Zones de)
$clip = imagegetclip($sourceImage, 50, 50, 300, 200);
// Appliquer un filtre flou gaussien
imagefilter($clip, IMG_FILTER_GAUSSIAN_BLUR);
// Enregistrer les résultats
imagejpeg($clip, 'clip_blur.jpg');
// Nettoyer les ressources
imagedestroy($sourceImage);
imagedestroy($clip);
Afin de comprendre l'impact de l'ordre différent de filtres et de recadrage sur les résultats, nous pouvons le faire à l'envers: appliquez d'abord des filtres à l'ensemble de l'image, puis recadré:
$sourceImage = imagecreatefromjpeg('https://gitbox.net/images/sample.jpg');
// Appliquer d'abord le filtre
imagefilter($sourceImage, IMG_FILTER_GAUSSIAN_BLUR);
// 再Recadrer
$clip = imagegetclip($sourceImage, 50, 50, 300, 200);
imagejpeg($clip, 'blur_clip.jpg');
La différence entre les deux résultats est:
Cramez d'abord puis filtrez : filtrez uniquement la zone sélectionnée.
Filtrez d'abord puis recadré : l'effet de filtre est cohérent et affecte l'ensemble de l'image, puis en extraire la zone.
Différentes commandes peuvent être sélectionnées en fonction des différents besoins.
Les filtres peuvent être utilisés, comme l'application de l'échelle de gris et l'affûtage en même temps après la culture:
$clip = imagegetclip($sourceImage, 50, 50, 300, 200);
imagefilter($clip, IMG_FILTER_GRAYSCALE);
imagefilter($clip, IMG_FILTER_CONTRAST, -15);
imagefilter($clip, IMG_FILTER_EDGEDETECT);
imagejpeg($clip, 'clip_effect.jpg');
Version des ressources : PHP devrait faire attention à la libération de ressources lors du traitement des images pour éviter la fuite de mémoire.
Prise en charge du format d'image : assurez-vous que le format d'image source prend en charge l'extension GD actuelle (telle que JPEG, PNG, etc.).
Compatibilité du filtre : les options de filtre prises en charge par différentes versions PHP peuvent varier.
En utilisant ImageGetClip pour le recadrage d'images, combiné à la fonction de filtre d' ImageFilter , peut réaliser de manière flexible divers besoins du traitement d'image. De la simple conversion en niveaux de gris en combinaisons complexes d'effets spéciaux, des opérations de traitement d'image puissantes peuvent être remplies dans quelques fonctions. Selon l'ordre de traitement, plusieurs effets visuels peuvent être obtenus et la capacité d'expression artistique des images peut être améliorée.
La maîtrise de ces techniques sera d'une grande aide pour vous dans le développement du traitement d'images.