在PHP中使用ImagicDraw中的Imagic方法

I am using Imagick library for draw image over a image. I need to draw a box over an image, for this print image I am using Imagick, and for draw a image I am using ImagickDraw.

Printing a image with Imagick is working fine. And also ImagickDraw also working fine.

When I use edgeImage method in imagick will make the image as color inverted. Can I use edgeImage method in ImagickDraw?

Here is my code:

<?php
$draw = new \ImagickDraw();
$draw->setFillOpacity(0.4);
$draw->setStrokeOpacity(1);
$draw->setStrokeColor("rgba(62,46,45,0.9)");
$draw->setFillColor("rgba(62,46,35,0.9)");
$draw->setStrokeWidth(-2);
$draw->setFontSize(0);
$brightness = "-20";
$contrast = "-20";
$channel = "green";
$draw->pathStart();
$draw->pathMoveToAbsolute (10,0);
$draw->rectangle(0, 0, 170, 300);
$draw->pathFinish();

$imagick = new \Imagick();
$imagick->readImage('images/men2.png');
$imagick->setImageFormat("png32");
$imagick->edgeImage(5);
$imagick->drawImage($draw);
header("Content-Type: image/png");

echo $imagick->getImageBlob();

?>