public function placeImage(
        $image,
        $place_constant = Imanee::IM_POS_TOP_LEFT,
        $width = null,
        $height = null,
        $transparency = 0
    ) {
        if (! ($this->resource instanceof ImageComposableInterface)) {
            throw new UnsupportedMethodException("This method is not supported by the ImageResource in use.");
        }

        if (!is_object($image)) {
            $img = clone $this;
            $img->load($image);
            $image = $img;
        }

        if (! ($image instanceof \Imanee\Imanee)) {
            throw new UnsupportedFormatException('Object not supported. It must be an instance of Imanee');
        }

        if ($width and $height) {
            $image->resize($width, $height);
        }

        list ($coordX, $coordY) = PixelMath::getPlacementCoordinates(
            $image->getSize(),
            ['width' => $this->getWidth(), 'height' => $this->getHeight()],
            $place_constant
        );

        $this->resource->compositeImage($image, $coordX, $coordY, 0, 0, $transparency);

        return $this;
    }