getWidth(), $overlay->getWidth()); $y = WideImage_Coordinate::fix($top, $base->getHeight(), $overlay->getHeight()); $result = $base->asTrueColor(); $result->alphaBlending(true); $result->saveAlpha(true); if ($pct <= 0) return $result; if ($pct < 100) { if (!imagecopymerge( $result->getHandle(), $overlay->getHandle(), $x, $y, 0, 0, $overlay->getWidth(), $overlay->getHeight(), $pct)) throw new WideImage_GDFunctionResultException("imagecopymerge() returned false"); } else { if (!imagecopy( $result->getHandle(), $overlay->getHandle(), $x, $y, 0, 0, $overlay->getWidth(), $overlay->getHeight())) throw new WideImage_GDFunctionResultException("imagecopy() returned false"); } return $result; } }