本文整理汇总了PHP中WideImage_Image::merge方法的典型用法代码示例。如果您正苦于以下问题:PHP WideImage_Image::merge方法的具体用法?PHP WideImage_Image::merge怎么用?PHP WideImage_Image::merge使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类WideImage_Image
的用法示例。
在下文中一共展示了WideImage_Image::merge方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: applyWatermark
/**
* Apply watermark to image
*
* @param string $wmPath
* @param int $opacity
* @param string $horPos
* @param string $vertPos
* @param int $margin
*
* @return UTIL_Image
*/
public function applyWatermark($wmPath, $opacity = 100, $horPos = 'right', $vertPos = 'bottom', $margin = 5)
{
$wmImage = WideImage::load($wmPath);
$wmWidth = $wmImage->getWidth();
$wmHeight = $wmImage->getHeight();
switch ($horPos) {
case 'right':
$horCoord = '100%-' . ($wmWidth + $margin);
break;
case 'left':
$horCoord = '0%+' . $margin;
break;
default:
$horCoord = '100%-' . ($wmWidth + $margin);
}
switch ($vertPos) {
case 'bottom':
$vertCoord = '100%-' . ($wmHeight + $margin);
break;
case 'top':
$vertCoord = '0%+' . $margin;
break;
default:
$vertCoord = '100%-' . ($wmHeight + $margin);
}
$this->image = $this->image->merge($wmImage, $horCoord, $vertCoord, $opacity);
return $this;
}
示例2: execute
/**
* @param WideImage_Image $image
* @param int $radius
* @param int $color
* @param int $smoothness
* @return WideImage_Image
*/
function execute($image, $radius, $color, $smoothness, $corners)
{
if ($smoothness < 1) {
$sample_ratio = 1;
} elseif ($smoothness > 16) {
$sample_ratio = 16;
} else {
$sample_ratio = $smoothness;
}
$corner = WideImage::createTrueColorImage($radius * $sample_ratio, $radius * $sample_ratio);
if ($color === null) {
imagepalettecopy($corner->getHandle(), $image->getHandle());
$bg_color = $corner->allocateColor(0, 0, 0);
$corner->fill(0, 0, $bg_color);
$fg_color = $corner->allocateColor(255, 255, 255);
$corner->getCanvas()->filledEllipse($radius * $sample_ratio, $radius * $sample_ratio, $radius * 2 * $sample_ratio, $radius * 2 * $sample_ratio, $fg_color);
$corner = $corner->resize($radius, $radius);
$result = $image->asTrueColor();
$tc = $result->getTransparentColor();
if ($tc == -1) {
$tc = $result->allocateColorAlpha(255, 255, 255, 127);
imagecolortransparent($result->getHandle(), $tc);
$result->setTransparentColor($tc);
}
if ($corners & WideImage::SIDE_TOP_LEFT || $corners & WideImage::SIDE_LEFT || $corners & WideImage::SIDE_TOP) {
$result = $result->applyMask($corner, -1, -1);
}
$corner = $corner->rotate(90);
if ($corners & WideImage::SIDE_TOP_RIGHT || $corners & WideImage::SIDE_TOP || $corners & WideImage::SIDE_RIGHT) {
$result = $result->applyMask($corner, $result->getWidth() - $corner->getWidth() + 1, -1, 100);
}
$corner = $corner->rotate(90);
if ($corners & WideImage::SIDE_BOTTOM_RIGHT || $corners & WideImage::SIDE_RIGHT || $corners & WideImage::SIDE_BOTTOM) {
$result = $result->applyMask($corner, $result->getWidth() - $corner->getWidth() + 1, $result->getHeight() - $corner->getHeight() + 1, 100);
}
$corner = $corner->rotate(90);
if ($corners & WideImage::SIDE_BOTTOM_LEFT || $corners & WideImage::SIDE_LEFT || $corners & WideImage::SIDE_BOTTOM) {
$result = $result->applyMask($corner, -1, $result->getHeight() - $corner->getHeight() + 1, 100);
}
return $result;
} else {
$bg_color = $color;
$corner->fill(0, 0, $bg_color);
$fg_color = $corner->allocateColorAlpha(127, 127, 127, 127);
$corner->getCanvas()->filledEllipse($radius * $sample_ratio, $radius * $sample_ratio, $radius * 2 * $sample_ratio, $radius * 2 * $sample_ratio, $fg_color);
$corner = $corner->resize($radius, $radius);
$result = $image->copy();
if ($corners & WideImage::SIDE_TOP_LEFT || $corners & WideImage::SIDE_LEFT || $corners & WideImage::SIDE_TOP) {
$result = $image->merge($corner, -1, -1, 100);
}
$corner = $corner->rotate(90);
if ($corners & WideImage::SIDE_TOP_RIGHT || $corners & WideImage::SIDE_TOP || $corners & WideImage::SIDE_RIGHT) {
$result = $result->merge($corner, $result->getWidth() - $corner->getWidth() + 1, -1, 100);
}
$corner = $corner->rotate(90);
if ($corners & WideImage::SIDE_BOTTOM_RIGHT || $corners & WideImage::SIDE_RIGHT || $corners & WideImage::SIDE_BOTTOM) {
$result = $result->merge($corner, $result->getWidth() - $corner->getWidth() + 1, $result->getHeight() - $corner->getHeight() + 1, 100);
}
$corner = $corner->rotate(90);
if ($corners & WideImage::SIDE_BOTTOM_LEFT || $corners & WideImage::SIDE_LEFT || $corners & WideImage::SIDE_BOTTOM) {
$result = $result->merge($corner, -1, $result->getHeight() - $corner->getHeight() + 1, 100);
}
return $result;
}
}