图片来自Tiles(GD)

use*_*378 1 php gd

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

两个位于顶部,两个位于底部.

像这样:

[][]
[][]
Run Code Online (Sandbox Code Playgroud)

怎么办?

Jac*_*cob 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);
Run Code Online (Sandbox Code Playgroud)

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