多年来,我一直在使用exec在PHP上完成ImageMagick的工作。但是,我现在移到了PHP ImageMagic扩展。但是,我无法在其中复制命令。
我想拍摄图像并调整其大小,并在其周围添加额外的空白,以使其适合这些尺寸。
我原来的imagemagic exec代码是:
sys.path.append('/path/to/project_one/conf')
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'settings')
这很完美,但是我现在想在ImageMagick PHP扩展中复制它。我尝试了以下操作,但不起作用。
exec("convert -define jpeg:size=100x100 test.jpg -thumbnail '480x360>' -background white -gravity center -extent 480x360 output.jpg");
我希望输出的图像适合480x360的框,并在其周围添加空白。图像将是100%可见的,周围区域有空白。因此,如果我上传了一张100x300的图片,那么它将是白框中的信箱。
答案 0 :(得分:2)
使用API时,extentImage
要求您计算页面(x,y)偏移量。
Imagick::extentImage ( int $width , int $height , int $x , int $y ) : bool
此处设置重力无效,并且应该发出PHP警告(检查日志)。
尝试以下操作...
$im = new Imagick('rose:');
$im->setImageBackgroundColor('GREEN');
$offsetX = 240 - $im->getImageWidth() / 2;
$offsetY = 180 - $im->getImageHeight() / 2;
$im->extentImage( 480, 360, -$offsetX, -$offsetY);
$im->writeImage('output.jpg');