php - 用GD创建一张包含其他图片的图片

标签 php gd image

我想在 PHP 中创建一张由不同图片组成的 GD 图片。例如,我有 6 张图片(或更多),我想创建一张包含这些不同图片的图片。

困难在于我的最终图片必须具有固定的宽度和高度 (304x179),因此如果不同的图片太大,则必须对其进行裁剪。这是来自 IconFinder 的示例:

This picture have 6 images

这张图是由6张图片组成的,但是第3只鸟(绿色)被切掉了,下面的4、5、6也被切掉了。这就是我想要的,你能帮我用 PHP 编写这段代码吗?

谢谢

最佳答案

创建您的主要图像并将其视为您的“ Canvas ”。

从那里,使用 imagecopy()将较小的图像复制到 Canvas 图像中。

例如看这个:

<?php
header('Content-Type: image/jpg');
$canvas = imagecreatetruecolor(304, 179);
$icon1 = imagecreatefromjpeg('icon.jpg');
$icon2 = imagecreatefromjpeg('icon2.jpg');
// ... add more source images as needed
imagecopy($canvas, $icon1, 275, 102, 0, 0, 100, 100);
imagecopy($canvas, $icon2, 0, 120, 0, 0, 100, 100);
// ... copy additional source images to the canvas as needed
imagejpeg($canvas);
?>

在我的示例中,icon.jpg 是一张 100x100 的图像,我将其放置在 Canvas 中,使其左上角位于 Canvas 中的 275、102 处,它切断了右侧.

编辑

我调整了代码以更类似于您正在做的事情。

关于php - 用GD创建一张包含其他图片的图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2933170/

相关文章:

javascript - 表并选择 rRow (id) 以传递到新页面(因此它不会覆盖行选择的变量)

php - 查找白色像素线

iphone - iPhone sdk 中最简单的逐帧动画技术是什么?

asp.net - ASP.NET 和 IIS 如何将 <img src ="localresource.jpg"> 标签转换为浏览器中的图像文件?

html - 如何将自定义颜色应用为图像的透明叠加层?

JavaScript 删除不起作用

php - 获取订单项 woocommerce 订单

php - 为什么 PayPal GetVerifiedStatus API 不适用于某些帐户

linux - 使用 cmake 在 rhel 上安装 libgd 2.1.1(最终版本)?

php - 如何制作网站的拇指