Почему мое изображение не в центре, когда я использую Perl :: Magick's Extent with Gravity? - PullRequest
4 голосов
/ 15 января 2010

Я пытаюсь использовать ImageMagick, чтобы немного расширить изображение:

my $image = Image::Magick->new;
open( IMAGE, $filename );
$image->Read( file => \*IMAGE );
close(IMAGE);

$image->Extent( gravity => 'Center', width => 150, height => 150, );

$image->Write( $outfile );

Хотя изображение увеличено до правильного размера, оно не посередине. Я правильно использую это?

Обновление:

Я также пытался использовать громоздкую версию:

$image->Set( Gravity => 'Center' );

но все равно ничего хорошего. Я использую версию 6.5.8-10.

2-е обновление:

Найдено в журнале изменений PerlMagick:

2009-10-18  6.5.7-0 Cristy  <quetzlzacatenango@image...>
  * Interpret gravity properly for ExtentImage().

Ответы [ 2 ]

1 голос
/ 23 марта 2011
#Ok, you need to extent your image upto 100x100 and fill new area by transparent background:

($nx, $ny) = $image->Get('base-columns','base-rows');
$nnx = 50-$nx/2;
$nny = 50-$ny/2;

$image->Extent(geometry=>"100x100-$nnx-$nny", background=>"graya(0%, 0)");

#woohoo!
0 голосов
/ 09 февраля 2010

Похоже на ошибку, так как конвертация вне Perl работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...