Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

如何使用PHP批量处理图片的尺寸

作者:ares丶技术魂   发布日期:2023-09-16   浏览:705

要使用PHP批量处理图片的尺寸,可以使用GD库或ImageMagick库。下面是使用GD库的示例代码:

<?php
// 设置要处理的图片目录
$dir = 'path/to/images/';

// 设置目标尺寸
$width = 200;
$height = 200;

// 获取目录中的所有图片文件
$files = glob($dir . '*.{jpg,jpeg,png,gif}', GLOB_BRACE);

// 遍历处理每个图片
foreach ($files as $file) {
    // 获取图片信息
    $info = getimagesize($file);
    $mime = $info['mime'];

    // 根据图片类型创建对应的图像资源
    switch ($mime) {
        case 'image/jpeg':
            $image = imagecreatefromjpeg($file);
            break;
        case 'image/png':
            $image = imagecreatefrompng($file);
            break;
        case 'image/gif':
            $image = imagecreatefromgif($file);
            break;
        default:
            continue; // 跳过不支持的图片类型
    }

    // 创建目标尺寸的空白图像
    $newImage = imagecreatetruecolor($width, $height);

    // 调整图片尺寸并保持原始比例
    $srcWidth = $info[0];
    $srcHeight = $info[1];
    $srcRatio = $srcWidth / $srcHeight;
    $dstRatio = $width / $height;
    if ($srcRatio > $dstRatio) {
        $newWidth = $width;
        $newHeight = $width / $srcRatio;
    } else {
        $newWidth = $height * $srcRatio;
        $newHeight = $height;
    }
    $dstX = ($width - $newWidth) / 2;
    $dstY = ($height - $newHeight) / 2;

    // 缩放图片
    imagecopyresampled($newImage, $image, $dstX, $dstY, 0, 0, $newWidth, $newHeight, $srcWidth, $srcHeight);

    // 保存处理后的图片
    $newFile = $dir . 'resized/' . basename($file);
    switch ($mime) {
        case 'image/jpeg':
            imagejpeg($newImage, $newFile);
            break;
        case 'image/png':
            imagepng($newImage, $newFile);
            break;
        case 'image/gif':
            imagegif($newImage, $newFile);
            break;
    }

    // 释放资源
    imagedestroy($image);
    imagedestroy($newImage);
}

// 输出处理完成的消息
echo '图片处理完成!';
?>

上述代码将指定目录中的所有图片按照设定的尺寸进行缩放,并保存到resized子目录中。你可以根据自己的需求修改目录路径、目标尺寸以及保存位置等参数。

上一篇:如何利用PHP开发图片滤镜功能

下一篇:PHP编程技巧:如何处理登录状态验证

大家都在看

php session用法

phpisset函数

php后端

php爬虫框架

php读取csv文件

php 三元表达式

php文件加密

php 拆分字符串

php pcntl

php ||

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站