【发布时间】:2013-04-27 08:07:36
【问题描述】:
我想拍摄一张具有透明度的图像,然后将其覆盖在 60x60(任意尺寸)图像的顶部,该图像在第一张图像的宽度和长度上重复...
所以本质上使用图像 2 作为图像 1 顶部的重复背景图像。
编辑:
好的,所以我使用 One Trick Pony 的解决方案,但尝试修改它以在宽度小于高度的情况下从矩形创建方形图像,但不拉伸原始图像而是将其居中。我能够使图像居中,但在覆盖图像停止后重复背景不会继续重复。
代码如下:
<?php
$overlay = imagecreatefrompng('../images/' . $_REQUEST['overlay']);
$repeating = '../images/' . $_REQUEST['repeating'];
$ext = explode('.', $_REQUEST['repeating']);
$ext = strtolower($ext[1]);
if ($ext == 'gif')
$repeating = imagecreatefromgif($repeating);
elseif ($ext == 'png')
$repeating = imagecreatefrompng($repeating);
elseif ($ext == 'jpg' || $ext == 'jpeg')
$repeating = imagecreatefromjpeg($repeating);
$w = imagesx($overlay);
$h = imagesy($overlay);
if ($w < $h)
$w = $h;
$output = imagecreatetruecolor($w, $h);
imagealphablending($output, true);
imagesettile($output, $repeating);
imagefill($output, 0, 0, IMG_COLOR_TILED);
imagedestroy($repeating);
$offsetx = ($w - imagesx($overlay)) / 2;
imagecopy($output, $overlay, $offsetx, 0, 0, 0, $w, $h);
imagedestroy($overlay);
header('Content-Type: image/png');
imagepng($output);
imagedestroy($output);
?>
编辑 2:
叠加层:http://72.167.52.68/~viisi/ebaylist/images/back_test2.png
重复:http://72.167.52.68/~viisi/ebaylist/images/back_test.gif
预期结果(但继续在整个图像中重复):http://72.167.52.68/~viisi/ebaylist/image/previewImage.php?overlay=back_test2.png&repeating=back_test.gif
【问题讨论】:
-
嗨,Vitaliy,好主意 - 活跃起来,编写一些代码,如果您需要帮助,请在此处发布!我认为 PHP 的 GD 函数将是一个好的开始。
-
我明天回到办公室就开始做这件事,等我有事后会公布结果。
标签: php gd imagecreatefrompng