2012-01-31 8 views
2

私は正確に424x318円を見つけて円を描く?

my image

そして、それは444x338であるdiv要素でラップされている画像の岩下次のイメージを持っています。

185x185の「トリミングツール」(サークルセンターピース)がありますが、プレースメントによっては最小で50x50、最大では300x300にリサイズできます。

トリミングツールの上部に「境界線/マージン」が28ピクセル、左側に「境界線/マージン」が20ピクセル(これらはタブを測定する測定値で、紫色の線と白いものです。リサイズ、そのサイズ変更割合によってボーダー/マージンを増加させる(その全体の事は1.5になった場合、スケールはなり* 1.5)。

トリミングツールも185x185幅x高の合計である。

は標準位置は中心です(66x120です)。

これですべてが途絶えてしまったので、私は問題を解決しようとしていますndの中心&私が処理するimagemagickに渡す1点。私は現在、

// Get variables 
$left = $val->pos['0']; // this is posted from jquery, using position(); 
$top = $val->pos['1']; // this is posted from jquery, using position(); 
$scale = $val->scale; // this is posted from jquery, using width/185 

$img = $val->image; // background image 
$h = $scale*185; 


// CENTER OF THE CIRCLE 
$c1 = ($h*.5)+$left-20; 
$c2 = ($h*.5)+$top-10; 

// LEFT SIDE 
$c3 = $left+(20*$scale)-10; 
$c4 = ($h*.5)+$top-10; 

$scalesize = $c1.",".$c2." ".$c3.",".$c4; 

// Crop Size WxH+X+Y 
$cr1 = $h-(40*$scale)-17; 
$cr2 = $h-(40*$scale)-14; 

$cr3 = $left-(20*$scale)+28; 
$cr4 = $top+(20*$scale)-3; 

$cropsize = $cr1."x".$cr2."+".$cr3."+".$cr4; 

以下の私は、私はちょうど私の人生のために私が間違っているのかを把握することはできません

$return = exec('convert -size 424x318 xc:none -fill 'filename' -draw "circle '.$scalesize.'" -crop '.$cropsize.' +repage '.newfilename); 

を使用してImageMagickの上にそれを渡しています。私は最後に##をつけて遊んでいます。そして、それは1つのサイズで働くことになります。しかし、私が作物ツールのサイズを変更すると、それはすべてがうんざりになります。

答えて

0

は一度に一つのステップを行うようにしてください:

  1. 右の場所(この使用:Crop or mask an image into a circle)の中に、あなたのツール作物いることを確認してください。
  2. サイズ変更(のみ)が正常に動作することを確認します。
  3. これら2つの部分をマージします。
+0

あなたはまだ問題が見つからない場合は、いくつかの立場>実行したコマンドの価値観を投稿してください – jrumbinas

0

マージンがスケールでリサイズされる場合は、それに応じて定数をスケーリングする必要があります。

このような何か:

// CENTER OF THE CIRCLE 
$c1 = ($h*.5)+$left-20 * scalesize; // Apply scale to constant 
$c2 = ($h*.5)+$top-10 * scalesize; // Apply scale to constant