Lors de l'exécution du traitement d'image PHP, Image2WBMP () est une fonction moins couramment utilisée mais toujours existante. Sa fonction principale est de produire des ressources d'image dans le format WBMP (Bitmap sans fil), qui était autrefois largement utilisé dans les premiers appareils mobiles. Mais dans l'environnement de développement d'aujourd'hui, nous pouvons toujours utiliser l'image2wbmp () pour explorer les méthodes d'optimisation des images, en particulier dans les scénarios où la taille de l'image et l'efficacité de transmission sont nécessaires.
Tout d'abord, nous devons être clairs: Image2WBMP () ne peut pas contrôler directement la qualité de l'image , car le format WBMP est essentiellement un bitmap noir et blanc , c'est-à-dire que chaque pixel n'a que deux états: noir ou blanc, et ne prend pas en charge les gris et les couleurs. Par conséquent, la «qualité d'image» traditionnelle ne s'applique pas au format WBMP. Mais cela ne signifie pas que nous ne pouvons pas l'optimiser en l'utilisant.
Bien que le format WBMP soit obsolète, ses caractéristiques extrêmement simplistes le rendent précieux dans certains scénarios spéciaux, tels que les systèmes embarqués, les terminaux Web minimalistes ou les interfaces avec des exigences de compression extrêmement élevées pour la taille de l'image. Image2WBMP () fournit un moyen de générer rapidement cette image et combinée avec d'autres méthodes de traitement d'image, il peut jouer un certain rôle d'optimisation.
Bien que Image2WBMP () n'ait aucun paramètre de qualité, nous pouvons utiliser les conseils suivants pour optimiser les performances de l'image avant la sortie:
Échelle de la taille de l'image
Traitement binaire des images (contrôle plus fin de la conversion en noir et blanc)
Traitement de réglage des couleurs personnalisés (traitement des images dans une distribution en niveaux de gris plus appropriée)
Ci-dessous, nous utiliserons un exemple de code simple pour illustrer l'intégralité du processus.
<code> <? Php // Définit le chemin d'image d'entrée
$ source = ' https://m66.net/images/sample.jpg ';
// Chargez l'image
$ image = ImageCreateFromJPEG ($ source);
// redimensionner l'image pour réduire la complexité globale de l'image (largeur: 100, hauteur: échelle de préservation du rapport)
$ largeur = 100;
$ height = imagesy ($ image) * ($ width / imagesx ($ image));
$ Residize = ImageCreateTrueColor ($ Largeur, $ height);
ImageCopyResampled ($ redimensive, $ image, 0, 0, 0, 0, $ width, $ height, imagesx ($ image), imagesy ($ image));
// change en niveaux de gris
ImageFilter ($ redimensive, img_filter_graycale);
// Binarisation manuelle (le seuil est fixé à 128)
pour ($ y = 0; $ y <$ height; $ y ++) {
pour ($ x = 0; $ x <$ largeur; $ x ++) {
$ rgb = ImageColorat ($ redimensive, $ x, $ y);
$ gris = $ rgb & 0xff;
$ color = ($ gris <128)? 0: 255;
$ bw = ImageColorAllocate ($ redimensive, $ couleur, $ couleur, $ couleur);
ImagesetPixel ($ redimensive, $ x, $ y, $ bw);
}
}
// Sortie sous forme d'image WBMP
En-tête ('Content-Type: image / vnd.wap.wbmp');
Image2WBMP ($ redimensive);
// Nettoyez la mémoire
iMageDestroy ($ image);
ImagedStroy ($ redimensive);
?>
</code>
Bien que Image2WBMP () ne prenne pas en charge les "paramètres de qualité" comme JPEG, via la mise à l'échelle de l'image, le traitement en niveaux de gris, la binarisation manuelle, etc., nous pouvons toujours obtenir un contrôle d'optimisation de la "qualité" de l'image dans une certaine mesure. Cette méthode convient à des scénarios spécifiques avec des exigences de volume extrêmement élevés et des exigences de couleur extrêmement faible.
Pour les applications Web modernes, si ce n'est pas sous des restrictions extrêmes, nous vous recommandons d'utiliser des formats qui prennent en charge l'ajustement du rapport de compression tels que JPEG, WebP ou AVIF. Mais si vous avez vraiment des besoins spéciaux pour utiliser WBMP, vous pouvez toujours obtenir de bons résultats en utilisant Image2WBMP () raisonnablement et le prétraitement d'image.