当前位置:首页 > PHP

php实现图片转换

2026-04-03 08:03:37PHP

图片格式转换

使用PHP的GD库或Imagick扩展可以轻松实现图片格式转换。GD库是PHP默认的图像处理库,而Imagick提供了更丰富的功能。

通过GD库将JPEG转换为PNG:

$sourceImage = imagecreatefromjpeg('input.jpg');
imagepng($sourceImage, 'output.png');
imagedestroy($sourceImage);

通过Imagick转换图片格式:

$image = new Imagick('input.jpg');
$image->setImageFormat('png');
$image->writeImage('output.png');
$image->clear();

图片缩放

使用GD库调整图片尺寸:

$sourceImage = imagecreatefromjpeg('input.jpg');
$width = imagesx($sourceImage);
$height = imagesy($sourceImage);
$newWidth = 200;
$newHeight = 150;

$thumb = imagecreatetruecolor($newWidth, $newHeight);
imagecopyresized($thumb, $sourceImage, 0, 0, 0, 0, $newWidth, $newHeight, $width, $height);
imagejpeg($thumb, 'thumbnail.jpg');
imagedestroy($thumb);
imagedestroy($sourceImage);

使用Imagick保持宽高比缩放:

$image = new Imagick('input.jpg');
$image->resizeImage(200, 150, Imagick::FILTER_LANCZOS, 1, true);
$image->writeImage('thumbnail.jpg');
$image->clear();

图片水印添加

使用GD库添加文本水印:

$image = imagecreatefromjpeg('input.jpg');
$textColor = imagecolorallocate($image, 255, 255, 255);
imagettftext($image, 20, 0, 10, 30, $textColor, 'arial.ttf', 'Watermark');
imagejpeg($image, 'watermarked.jpg');
imagedestroy($image);

使用Imagick添加图片水印:

$image = new Imagick('input.jpg');
$watermark = new Imagick('watermark.png');
$image->compositeImage($watermark, Imagick::COMPOSITE_OVER, 10, 10);
$image->writeImage('watermarked.jpg');
$image->clear();
$watermark->clear();

图片滤镜应用

使用GD库应用黑白滤镜:

$image = imagecreatefromjpeg('input.jpg');
imagefilter($image, IMG_FILTER_GRAYSCALE);
imagejpeg($image, 'bw.jpg');
imagedestroy($image);

使用Imagick应用模糊效果:

$image = new Imagick('input.jpg');
$image->blurImage(5, 3);
$image->writeImage('blurred.jpg');
$image->clear();

图片旋转

使用GD库旋转图片:

$image = imagecreatefromjpeg('input.jpg');
$rotated = imagerotate($image, 45, 0);
imagejpeg($rotated, 'rotated.jpg');
imagedestroy($image);
imagedestroy($rotated);

使用Imagick旋转图片:

$image = new Imagick('input.jpg');
$image->rotateImage(new ImagickPixel('none'), 45);
$image->writeImage('rotated.jpg');
$image->clear();

图片裁剪

使用GD库裁剪图片:

$image = imagecreatefromjpeg('input.jpg');
$cropped = imagecrop($image, ['x' => 100, 'y' => 100, 'width' => 200, 'height' => 200]);
imagejpeg($cropped, 'cropped.jpg');
imagedestroy($image);
imagedestroy($cropped);

使用Imagick精确裁剪:

$image = new Imagick('input.jpg');
$image->cropImage(200, 200, 100, 100);
$image->writeImage('cropped.jpg');
$image->clear();

图片压缩

使用GD库控制JPEG质量:

$image = imagecreatefromjpeg('input.jpg');
imagejpeg($image, 'compressed.jpg', 75); // 75%质量
imagedestroy($image);

使用Imagick优化图片:

php实现图片转换

$image = new Imagick('input.jpg');
$image->setImageCompressionQuality(75);
$image->stripImage(); // 移除元数据
$image->writeImage('optimized.jpg');
$image->clear();

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

相关文章

php实现验证码

php实现验证码

PHP实现验证码的方法 使用GD库生成验证码 GD库是PHP中处理图像的扩展,可用于生成验证码图片。 <?php session_start(); $width = 120; $height…

php实现递归

php实现递归

递归的基本概念 递归是一种函数调用自身的技术,适用于解决可以分解为相同子问题的问题。在PHP中,递归需要明确的终止条件(基线条件),否则会导致无限循环。 递归实现阶乘 阶乘是经典的递归案例,n! =…

jquery 图片

jquery 图片

jQuery 图片操作 jQuery 提供了多种方法来操作图片,包括加载、显示、隐藏、调整尺寸等。以下是一些常见的图片操作方法: 动态加载图片 使用 attr() 方法可以动态修改图片的 src 属…

php 实现单链表

php 实现单链表

单链表的基本概念 单链表是一种线性数据结构,由节点组成,每个节点包含数据域和指向下一个节点的指针域。链表的头节点是访问整个链表的入口。 单链表的节点类实现 在PHP中,可以通过类来定义链表节…

php 实现单点登录

php 实现单点登录

PHP 实现单点登录的方法 单点登录(SSO)允许用户通过一次登录访问多个相互信任的系统。以下是基于 PHP 的实现方案: 基于共享 Session 的方案 在同一个主域名下的子域名间可以通过共享…

php实现重定向

php实现重定向

使用header函数进行重定向 在PHP中,header()函数是实现重定向的常用方法。通过发送HTTP头信息Location,浏览器会自动跳转到指定URL。需确保在调用header()前没有输出任何…