PHP juga boleh mengubah saiz imej JPEG!

藏色散人
Lepaskan: 2023-04-10 16:20:01
asal
3829 orang telah melayarinya

Dalam artikel sebelumnya " Mengapa operator === dalam PHP lebih cepat daripada ==? 》Memperkenalkan mengapa operator === dalam PHP lebih pantas daripada ==, rakan-rakan yang berminat boleh mempelajarinya~

Tema artikel ini adalah untuk mengajar anda cara melaraskan JPEG dalam saiz Imej PHP.

Dalam proses pembangunan laman web, kadangkala kami menghadapi keperluan untuk melaksanakan fungsi penskalaan imej, seperti imej muka depan, lakaran kecil, gambar maklumat, dsb. Saiz imej mesti ditentukan mengikut keperluan, tetapi semua orang juga harus tahu bahawa mengenai saiz imej, kita boleh menggunakan HTML untuk mengubah suainya, seperti berikut:

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

Sudah tentu fokus artikel ini menggunakan PHP untuk melaraskan saiz imej Mari kita lihat kod:

Kod PHP adalah seperti berikut:

<?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);
Salin selepas log masuk

Kesannya. adalah seperti berikut:

PHP juga boleh mengubah saiz imej JPEG!

Anda memerlukannya di sini Semua orang tahu fungsi penting imagecopyresampled():

(Fungsi ini boleh digunakan untuk versi PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

imagecopyresampled — Pensampelan Semula Salin bahagian imej dan ubah saiznya; Parameter masing-masing:

imagecopyresampled() Salin kawasan segi empat sama dalam imej ke imej lain, menginterpolasi nilai piksel dengan lancar, dengan itu, antara lain, mengurangkan saiz imej sambil mengekalkan ketajaman yang hebat.
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
Salin selepas log masuk

Jika sumber dan destinasi mempunyai lebar dan ketinggian yang berbeza, pengecutan dan regangan imej yang sepadan akan berlaku. Koordinat merujuk kepada sudut kiri atas. Fungsi ini boleh digunakan untuk menyalin kawasan dalam imej yang sama (jika dst_image dan src_image adalah sama), tetapi hasilnya tidak dapat diramalkan jika kawasan itu bertindih.
dst_image:目标图象资源。
src_image:源图象资源。
dst_x:目标 X 坐标点。
dst_y:目标 Y 坐标点。
src_x:源的 X 坐标点。
src_y:源的 Y 坐标点。
dst_w:目标宽度。
dst_h:目标高度。
src_w:源图象的宽度。
src_h:源图象的高度。
Salin selepas log masuk

Akhir sekali, saya ingin mengesyorkan "

Tutorial Video PHP
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).
Salin selepas log masuk
" yang terkini dan paling komprehensif kepada semua orang~ Datang dan belajar!

Atas ialah kandungan terperinci PHP juga boleh mengubah saiz imej JPEG!. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
php
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan