当前位置:首页 > PHP

php实现图片处理

2026-02-16 13:15:31PHP

PHP 图片处理基础方法

GD 库是 PHP 内置的图像处理库,需确保 php.ini 中启用 extension=gd

检查 GD 库是否启用:

<?php
print_r(gd_info());
?>

创建画布与基本操作

新建空白画布(300x200 像素):

$image = imagecreatetruecolor(300, 200);
$bgColor = imagecolorallocate($image, 255, 255, 255);
imagefill($image, 0, 0, $bgColor);

绘制图形示例:

$red = imagecolorallocate($image, 255, 0, 0);
imagefilledrectangle($image, 50, 50, 250, 150, $red);

图片缩放与裁剪

等比例缩放图片:

$srcImage = imagecreatefromjpeg('input.jpg');
$newWidth = 200;
$newHeight = imagesy($srcImage) * ($newWidth / imagesx($srcImage));
$scaledImage = imagescale($srcImage, $newWidth, $newHeight);

精确裁剪区域:

$cropped = imagecrop($srcImage, ['x' => 100, 'y' => 50, 'width' => 200, 'height' => 150]);

图片滤镜效果

应用灰度滤镜:

imagefilter($image, IMG_FILTER_GRAYSCALE);

添加浮雕效果:

php实现图片处理

imagefilter($image, IMG_FILTER_EMBOSS);

文字水印添加

在图片上写入文字:

$textColor = imagecolorallocate($image, 0, 0, 0);
imagettftext($image, 20, 0, 50, 100, $textColor, 'arial.ttf', 'Watermark');

图片格式转换

将 PNG 转换为 JPG:

$pngImage = imagecreatefrompng('input.png');
imagejpeg($pngImage, 'output.jpg', 90);
imagedestroy($pngImage);

图片保存与输出

保存到文件:

imagejpeg($image, 'processed.jpg', 85);

直接输出到浏览器:

php实现图片处理

header('Content-Type: image/jpeg');
imagejpeg($image);
imagedestroy($image);

使用 Imagick 扩展(更高级)

需安装 Imagick 扩展:

pecl install imagick

调整图片质量示例:

$imagick = new Imagick('input.jpg');
$imagick->setImageCompressionQuality(80);
$imagick->writeImage('output.jpg');

添加阴影效果:

$imagick->shadowImage(50, 3, 5, 5);

常见问题处理

处理内存不足:

ini_set('memory_limit', '256M');

解决方向错误(EXIF 修正):

function correctImageOrientation($filename) {
    $exif = exif_read_data($filename);
    if (!empty($exif['Orientation'])) {
        $image = imagecreatefromjpeg($filename);
        switch ($exif['Orientation']) {
            case 3: $image = imagerotate($image, 180, 0); break;
            case 6: $image = imagerotate($image, -90, 0); break;
            case 8: $image = imagerotate($image, 90, 0); break;
        }
        imagejpeg($image, $filename, 90);
    }
}

标签: 图片处理php
分享给朋友:

相关文章

php实现图片上传

php实现图片上传

实现图片上传的基本步骤 创建HTML表单用于文件上传,表单需设置enctype="multipart/form-data"属性,确保文件数据正确传输。 <form action="upload…

php实现定时任务

php实现定时任务

PHP 实现定时任务的几种方法 在 PHP 中实现定时任务可以通过多种方式完成,具体选择取决于项目需求和服务器环境。以下是常见的实现方法: 使用 Cron 任务 Cron 是 Linux 系统中常…

php实现

php实现

PHP 实现的基本方法 PHP 是一种服务器端脚本语言,广泛用于 Web 开发。以下是 PHP 实现的一些常见方法。 变量与数据类型 PHP 变量以 $ 开头,支持多种数据类型: $nam…

php 登录实现

php 登录实现

PHP 登录实现 PHP 登录功能通常包括用户认证、会话管理和安全性措施。以下是实现 PHP 登录功能的关键步骤。 数据库准备 创建一个用户表存储用户信息,通常包括用户名、密码(加密存储)和其他必要…

php实现上传图片

php实现上传图片

上传图片的基本流程 PHP 实现图片上传功能需要处理文件接收、验证、保存等步骤。以下是具体实现方法。 创建 HTML 表单 在 HTML 中创建一个表单,设置 enctype="multipart…

php实现博客

php实现博客

使用PHP实现博客系统 数据库设计 创建数据库表存储博客文章和用户信息。常见的表包括posts(文章)和users(用户)。 CREATE TABLE users ( id INT AUT…