2016-04-12 13 views
1

ImageMagickを使用して画像から空白を削除しています。すべてがうまくいき、うまくトリミングしています。しかし、今では約30ピクセルのオフセットを残して、余分な空白をイメージから削除したいと考えています。私は私の現在の結果が今、あなたは上の画像が完全にトリミングされていることがわかりますImageMagickオフセット付き空白をトリミングする

enter image description here

であると言うことを意味するが、私はすべての側面に30pxを残したいenter image description here

ようないくつかのオフセットたいです残っている空白を削除します。 Fuzzで次のコードでトリミングしています

$image = new Imagick('capfile.jpg');           
$image->trimImage(25000); 

私は罫線や切り抜きを追加したくありません。私はちょうど私のイメージの多くもFuzzを使ってトリムされているいくつかの明るい背景色を持っているので、境界線を追加することはオプションではないので、メイン画像自体に30pxのオフセットでトリミングしたい。

答えて

1

あなたはImageMagickのコマンドラインでこれを好きにトリムうトリムボックス得ることができます:あなたが変更番号を使用する前に、望むよう

convert -fuzz 10% -format %@ cap.jpg info: 
259x171+19+21 

次に、あなたは、幅/高さとオフセットを変更することができますがクロップを行う - すなわち、xとyのオフセットから30を引いて、幅と高さに60を加えます。

は、私はPHPでこれを行うことができますどのようにemcconville

編?

ここではPHPの代替は、私はPHPでこれを行うことができますどのように...

$img = new Imagick('/tmp/Zpuq9.jpg'); 
// Get Quantum to calculate 40% 
$quantumInfo = $img->getQuantumRange(); 
// -fuzz 40% 
$img->trimImage($quantumInfo['quantumRangeLong'] * 0.4); 
// -format %@ 
$img->setOption('format','%@'); 
// info: 
$img->setImageFilename('info:'); 

/* 
* For this example, let's use PHP memory protocol 
* to capture std out (from `info:'). 
*/ 
$fd = fopen('php://memory','rwb'); 
$img->writeImageFile($fd); 
fseek($fd, 0); 
$info = fread($fd, 1024); 
fclose($fd); 
var_dump($info); 
//=> string(13) "258x170+19+22" 
+0

ですか?私が理解できるように、このコマンドのPHPコード形式を提供してください。私はちょうどImageMagick –

+0

Mr Danack氏を救助に使ったばかりです... http://stackoverflow.com/a/29043311/2836621 –

関連する問題