使用GD来制作缩略图

<?php 

// 1)加载原图
$src_image = imagecreatefromjpeg('images/003.jpg');

// 2)按比例计算出缩略图的大小
$src_w = imagesx($src_image); //获取原始宽
$src_h = imagesy($src_image); //高

//缩放比例
$scale = 0.25;

//按照比例计算出小图的大小
$dst_w = $src_w * $scale;
$dst_h = $src_h * $scale;

// 3)制作空白画布
$dst_image = imagecreatetruecolor($dst_w, $dst_h);
$src_x = $src_y = $dst_x = $dst_y = 0;

// 4)合并原图 到 空白画布上
imagecopyresampled($dst_image, $src_image, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h);

// 5)输出到浏览器
header('content-type:image/jpeg');
imagejpeg($dst_image);

// 6)导出到本地
imagejpeg($dst_image, 'thumb/123.jpg');

imagedestroy($dst_image);
imagedestroy($src_image);

// 注意:原理为截取图片所有内容, 然后缩放并合并到一张较小的空白画布上即可


相关推荐

  • 生成图片

    from PIL import Image, ImageColor, ImageDraw, ImageFont, ImageFilterdef create_image_with_text(size, color, text, font_path, font_size, text_color, shadow_color, output_path): """ Create a new image of specified size and color with centered text that has a border and shadow. :param size: A tuple con

  • 获取指定目录下的所有图片信息

    1 获取指定目录下的所有图片信息// 获取指定目录下的所有图片信息 public function getImagesInfo($directory) { $images = []; // 创建递归目录迭代器 $iterator = new \RecursiveIteratorIterator( new \RecursiveDirectoryIterator($directory, \RecursiveDirectoryIterator::SKIP_DOTS), \RecursiveIteratorIterator::LEAVES_ONLY ); // 遍历目录中的每个文件 foreach (

  • Thinkphp各版本的PHP要求

    ThinkPHP 8.0:运行环境要求PHP8.0+,兼容PHP8.3ThinkPHP 6.1:运行环境要求PHP7.2+,兼容PHP8.1ThinkPHP 6.0:运行环境要求PHP7.2+,兼容PHP8.1ThinkPHP 5.1:运行环境要求PHP5.6+,兼容PHP8.0ThinkPHP 5.0:运行环境要求PHP5.4+,兼容PHP7.3