Dans le développement réel du traitement d'image, la culture est une opération commune et nécessaire. En tant que langue importante pour le développement backend, PHP fournit également plusieurs fonctions liées aux cultures, les deux les plus couramment confus sont ImageGetClip () et ImageCrop () . Cet article comparera en profondeur l'utilisation, les différences fonctionnelles et les scénarios applicables de ces deux fonctions pour aider les développeurs à choisir des méthodes de recadrage d'image appropriées en fonction des besoins spécifiques.
ImageCrop () est une fonction de recadrage d'image standard fournie par PHP et a été introduite depuis PHP 5.5. Son objectif de base est de recadrer une ressource d'image donnée dans une zone rectangulaire spécifiée à une nouvelle image.
Définition de la fonction:
resource imagecrop(resource $image, array $rect)
Description du paramètre:
$ Image : Ressource d'image originale
$ rect : un tableau qui définit la zone de culture, y compris x , y , largeur , hauteur
Exemple de code:
$src = imagecreatefromjpeg('https://gitbox.net/images/sample.jpg');
$crop = imagecrop($src, ['x' => 100, 'y' => 50, 'width' => 200, 'height' => 100]);
if ($crop !== FALSE) {
imagejpeg($crop, 'cropped.jpg');
}
ImageGetClip () est une fonction moins référée. Il n'est pas réellement utilisé pour «recadrer» le contenu de l'image, mais pour obtenir le rectangle d'écrêtage de la ressource d'image actuelle. Cette zone d'écrêtage est utilisée pour limiter la portée des opérations de dessin d'image et fait partie du contexte de dessin.
Définition de la fonction:
array imagegetclip(resource $im)
Exemple de code:
$im = imagecreatefrompng('https://gitbox.net/images/example.png');
$clip = imagegetclip($im);
print_r($clip);
La sortie peut être:
Array
(
[x] => 0
[y] => 0
[width] => 400
[height] => 300
)
Cela indique que la zone de restriction de dessin de l'image actuelle est (0,0) - (400,300).
Fonction | image | ImageGetClip |
---|---|---|
utiliser | Cramez en fait la zone d'image et génèrent de nouvelles ressources d'image | Obtenez la zone restreinte de dessin actuel (aucune modification du contenu de l'image) |
S'il faut modifier le contenu de l'image | Oui | Non |
S'il faut générer une nouvelle image | Oui | Non |
Version introduite | PHP 5.5 | PHP 5.6 |
Utilisation opérationnelle pratique | Génération de vignettes d'image, recadrage d'avatar des utilisateurs, etc. | Paramètres de contexte avant le dessin (combiné avec ImageClip) |
De nombreux développeurs pensent à tort que ImageGetClip () peut également recadrer des images comme ImageCrop () lorsqu'ils sont débutants. En fait, c'est une mauvaise compréhension. ImageGetClip () est plus en conjonction avec ImageSetClip () , utilisé pour définir et obtenir la zone de restriction de dessin de la ressource d'image actuelle, et ne modifie pas le contenu d'image réel.
Si votre exigence est "recadré et économiser une partie de l'image", utilisez ImageCrop () sans hésitation. Si vous travaillez sur le contexte graphique ou si vous devez contrôler la zone de dessin graphique, vous devez envisager d'utiliser ImageGipClip () .
En général, ImageCrop () est une fonction de recadrage standard qui est utilisée pour traiter et enregistrer une partie d'une image, tandis que ImageGetClip () est uniquement utilisée pour obtenir les informations d'état du contexte de dessin d'image. Comprendre leurs différences d'utilisation peut éviter la confusion et les erreurs dans le processus de développement et peut également utiliser plus efficacement les capacités de traitement d'image de PHP.