图片来自Tiles(GD)

时间:2011-03-11 22:51:46

标签: php gd

我有4个小JPEG图像(40px x 30px),我想用GD创建一个图像。

顶部有两个,底部有两个。

像这样:

[][]
[][]

怎么办呢?

1 个答案:

答案 0 :(得分:5)

您需要使用的功能是

  • getimagesize - 获取宽度和高度,以便了解制作最终图像的大小,除非您要对其进行硬编码。
  • imagecreate - 为合并图像创建资源。
  • imagecreatefromjpeg - 将现有的图块作为资源加载。
  • imagecopy - 将现有切片复制到新的图片资源中,您不需要重新采样的功能,因为尺寸/尺寸不会改变。
  • imagejpeg - 保存合并后的图片。

这是一些未经测试的代码,它遍历tile数组以创建它。它使用常量来表示宽度和高度。

<?php
define('TILE_WIDTH', 40);
define('TILE_HEIGHT', 30);

$tiles = array(
    array('tile1.jpeg', 'tile2.jpeg'),
    array('tile3.jpeg', 'tile4.jpeg'),
);

$saveTo = 'result.jpeg';

$image = imagecreate(TILE_WIDTH * 2, TILE_HEIGHT * 2);
foreach($tiles as $row => $columns) {
    foreach($columns as $col => $filename) {
        $tile = imagecreatefromjpeg($filename);
        imagecopy($image, $tile, $row * TILE_WIDTH, $col * TILE_HEIGHT, 0, 0, TILE_WIDTH, TILE_HEIGHT);
    }
}

imagejpeg($image, $saveTo);

如果您只想显示图像,则不要将第二个参数传递给imagejpeg,但需要将标题内容类型设置为image / jpeg。