Какой самый быстрый способ объединить два изображения в PHP? - PullRequest
2 голосов
/ 26 апреля 2011

Мне нужно объединить изображения в php (два или более), как по вертикали, так и по горизонтали. Какой самый быстрый способ сделать это?

obs: я не хочу использовать неродные библиотеки

еще одно сомнение. будет ли полученное изображение иметь сумму размеров изображений или оно может быть значительно больше?

спасибо (:

1 Ответ

3 голосов
/ 26 апреля 2011
$newWidth = $w1 + $w2;
$newHeight = $h1 + $h2;
$newImage = imagecreatetruecolor($newWidth, $newHeight);

imagecopyresampled($newImage, $image1, 0, 0, 0, 0, $w1, $h1, $w1, $h1);
imagecopyresampled($newImage, $image2, $w1, 0, 0, 0, $w2, $h2, $w2, $h2);

Теперь я только что написал код в редакторе переполнения стека, и он не проверен, но он должен использовать все собственные библиотеки и, вероятно, быть самым быстрым. Просто скопируйте и повторно сэмплируйте image1 в первую половину (по ширине), а затем скопируйте второе изображение во вторую половину (по ширине). Если вы захотите сделать это с помощью стека по высоте, это просто изменит то, где находится dest_h. Вот немного информации ... http://php.net/manual/en/function.imagecopyresampled.php

О, кстати, это было для сохранения изображения. Это то, что я предполагаю, что вы делаете. В противном случае ответ о размещении двух изображений рядом с тегами будет самым быстрым.

Что касается полученного изображения, запомните. Если они уложены горизонтально, то ширина будет $w1 + $w2, а высота будет math.max($h1, $h2) и наоборот, если изображения располагаются вертикально

...