Maison  >  Article  >  développement back-end  >  PHP peut également redimensionner les images JPEG !

PHP peut également redimensionner les images JPEG !

藏色散人
藏色散人original
2021-08-31 14:27:483815parcourir

Dans l'article précédent « Pourquoi l'opérateur === en PHP est-il plus rapide que == ? 》Vous avez expliqué pourquoi l'opérateur === en PHP est plus rapide que ==. Les amis intéressés peuvent en apprendre davantage ~

Le thème de cet article est de vous apprendre à ajuster la taille de l'image JPEG en PHP.

Dans le processus de développement de sites Web, nous sommes parfois confrontés à la nécessité de mettre en œuvre la fonction de mise à l'échelle des images, telles que les images de couverture, les vignettes, les images d'information, etc. La taille de l'image doit être précisée en fonction des besoins, mais chacun doit savoir aussi qu'en ce qui concerne la taille de l'image, on peut utiliser du HTML pour la modifier, comme suit :

<img src="001.jpg"    style="max-width:90%" width="100" alt="图片尺寸">

Bien entendu, l'objectif de cet article est d'utiliser PHP pour ajuster la taille de l'image. Regardons directement le code :

Le code PHP est le suivant :

<?php

$filename = &#39;001.jpg&#39;;

// 最大宽度和高度
$width = 100;
$height = 100;

// 文件类型
header(&#39;Content-Type: image/jpg&#39;);

// 新尺寸
list($width_orig, $height_orig) = getimagesize($filename);

$ratio_orig = $width_orig/$height_orig;

if ($width/$height > $ratio_orig) {
    $width = $height*$ratio_orig;
} else {
    $height = $width/$ratio_orig;
}

// 重采样的图像
$image_p = imagecreatetruecolor($width, $height);
$image = imagecreatefromjpeg($filename);

imagecopyresampled($image_p, $image, 0, 0, 0, 0,
    $width, $height, $width_orig, $height_orig);

// 输出图像
imagejpeg($image_p, null, 100);

L'effet est le suivant :

PHP peut également redimensionner les images JPEG !

Ici, vous devez maîtriser une fonction importante imagecopyresampled( ) : imagecopyresampled()

(该函数适用版本PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

imagecopyresampled

(Cette fonction est applicable à la version PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

imagecopyresampled — Rééchantillonne et copie une partie du image et redimensionnez-la ;

Syntaxe :

imagecopyresampled(
    resource $dst_image,
    resource $src_image,
    int $dst_x,
    int $dst_y,
    int $src_x,
    int $src_y,
    int $dst_w,
    int $dst_h,
    int $src_w,
    int $src_h
): bool

Paramètres respectivement :

dst_image:目标图象资源。
src_image:源图象资源。
dst_x:目标 X 坐标点。
dst_y:目标 Y 坐标点。
src_x:源的 X 坐标点。
src_y:源的 Y 坐标点。
dst_w:目标宽度。
dst_h:目标高度。
src_w:源图象的宽度。
src_h:源图象的高度。

imagecopyresampled() copiera une zone carrée d'une image à une autre, en interpolant en douceur les valeurs de pixels et ainsi, entre autres, en réduisant la taille de l'image. tout en conservant une grande netteté.

In other words, imagecopyresampled() will take a rectangular area from src_image of width src_w and height src_h at position (src_x,src_y) and place it in a rectangular area of dst_image of width dst_w and height dst_h at position (dst_x,dst_y).
Si la source et la destination ont des largeurs et des hauteurs différentes, un rétrécissement et un étirement correspondants de l'image se produiront. Les coordonnées se réfèrent au coin supérieur gauche. Cette fonction peut être utilisée pour copier des régions au sein de la même image (si dst_image et src_image sont identiques), mais les résultats sont imprévisibles si les régions se chevauchent.

Enfin, je voudrais recommander à tout le monde le "🎜Tutoriel vidéo PHP🎜" le plus récent et le plus complet ~ Venez apprendre ! 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn