php 实现看图功能
实现 PHP 看图功能
PHP 可以通过多种方式实现图片查看功能,以下是一些常见的方法:
使用 GD 库处理图片
GD 库是 PHP 内置的图像处理扩展,可以用来生成、修改和输出图片:
// 创建一个图片资源
$image = imagecreatefromjpeg('example.jpg');
// 输出图片到浏览器
header('Content-Type: image/jpeg');
imagejpeg($image);
// 释放内存
imagedestroy($image);
使用文件流输出图片
直接读取图片文件并输出到浏览器:

$file = 'example.jpg';
$type = 'image/jpeg';
header('Content-Type:'.$type);
header('Content-Length: '.filesize($file));
readfile($file);
创建图片缩略图
使用 GD 库创建缩略图:
// 原始图片
$source = imagecreatefromjpeg('original.jpg');
$width = imagesx($source);
$height = imagesy($source);
// 缩略图尺寸
$new_width = 200;
$new_height = 200;
// 创建新图像
$thumb = imagecreatetruecolor($new_width, $new_height);
// 调整大小
imagecopyresized($thumb, $source, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
// 输出缩略图
header('Content-Type: image/jpeg');
imagejpeg($thumb);
// 释放内存
imagedestroy($source);
imagedestroy($thumb);
使用 Imagick 扩展
Imagick 是另一个强大的图像处理库:

$image = new Imagick('example.jpg');
header('Content-Type: image/jpeg');
echo $image;
图片水印功能
为图片添加水印:
$image = imagecreatefromjpeg('example.jpg');
$watermark = imagecreatefrompng('watermark.png');
$image_width = imagesx($image);
$image_height = imagesy($image);
$watermark_width = imagesx($watermark);
$watermark_height = imagesy($watermark);
// 水印位置
$dest_x = $image_width - $watermark_width - 5;
$dest_y = $image_height - $watermark_height - 5;
// 合并图片
imagecopy($image, $watermark, $dest_x, $dest_y, 0, 0, $watermark_width, $watermark_height);
// 输出图片
header('Content-Type: image/jpeg');
imagejpeg($image);
// 释放内存
imagedestroy($image);
imagedestroy($watermark);
图片浏览器功能
创建简单的图片浏览器:
$dir = 'images/';
$images = glob($dir.'*.{jpg,jpeg,png,gif}', GLOB_BRACE);
foreach($images as $image) {
echo '<img src="'.$image.'" style="max-width:200px; margin:10px;">';
}
注意事项
- 确保服务器安装了 GD 或 Imagick 扩展
- 处理用户上传图片时要注意安全,验证文件类型
- 对大图片处理时考虑内存限制
- 输出图片前必须设置正确的 Content-Type 头
这些方法可以根据具体需求组合使用,实现更复杂的图片查看和处理功能。






