function opacity($opacity)
{
// Determine opacity
$opacity = $this->keep_within($opacity, 0, 1) * 100;
// Make a copy of the image
$copy = imagecreatetruecolor($this->width, $this->height);
imagealphablending($copy, false);
imagesavealpha($copy, true);
imagecopy($copy, $this->image, 0, 0, 0, 0, $this->width, $this->height);
// Create transparent layer
$this->create($this->width, $this->height, array(0, 0, 0, 127));
// Merge with specified opacity
$this->imagecopymerge_alpha($this->image, $copy, 0, 0, 0, 0, $this->width, $this->height, $opacity);
imagedestroy($copy);
return $this;
}