2012-05-10 15 views
2

JCropを使用して画像を切り抜こうとしています。しかし、結果はイライラしています。誰かが画像を選択すると、JavaScriptが新たにアップロードされた画像と一致するようにページ上の画像のソースを変更する画像アップローダーがあります。私は、このコードを持っている:JCrop画像のサイズを変更しない - Javascript

$('#myForm').ajaxForm({ 
    dataType: 'json', 
    success: function (result) { 
     $("#image-editor-preview img") 
      .attr("src", "/Profiles/AvatarWorker/" + _id + "?random=" + Math.random()) 
         .Jcrop({ 
          aspectRatio: 1, 
          setSelect: [100, 100, 50, 50], 
          minSize: [160, 160], 
          maxSize: [160, 160], 
          onChange: setCoords, 
          onSelect: setCoords 
         }); 
    } 
}); 

var x = 0, y = 0, w = 0, h = 0; 
function setCoords(c) { 
    x = c.x; 
    y = c.y; 
    w = c.w; 
    h = c.h; 
}; 

しかし、これは何が起こるかです:

enter image description here

私はこの問題を解決しようとしたかなり試してみましたが、最終結果は常に同じです。誰でもアイデアはありますか?ありがとう。

+0

関数 'setCoords'のソースを投稿できますか? –

+0

@EthanBrown done – yaegerbomb

答えて

5

私はそれを理解することができました。結局のところ、JCropは、JCropボックスの幅に問題があります。 twitterのブートストラップモーダルは、JCrop CSS内のCSSをオーバーライドしています。これが起こらないようにJCropのCSSを修正しなければなりませんでした。

+2

あなたはどのようなCSSを修正しましたか? – Bungdaddy

+2

@ Bungdaddy Oof、これはずっと前です。別の人がこの質問にコメントしました:http://stackoverflow.com/a/11207459/692197彼が何をしたかは、私がしたことで正しいと思います。クロッピングツールは、モーダルからCSSを継承していました。私は高さと幅をjcropのCSSファイルで問題を解決するために削除しなければならないと考えています。 – yaegerbomb

0

Jcropドキュメントによれば、実際にクロッピングを実行しません。画像の切り抜きUIのみが作成されます。その後、実際のクロッピングを実行するサーバーに依存します。 http://deepliquid.com/content/Jcrop_Implementation_Theory.htmlを参照してください。それで、プラグインは、それがするように設計されているものを正確に実行しているように見えます。表示されるように、残りの部分はサーバー上で自分自身を実行するようになりました。

+0

画像を保存することは問題ではありません。クロッピングツールが問題です。私は座標で画像を保存することができます。私が理解していないのは、それが与えられたイメージで働いていないという事実です。画像の切り取った部分を表示するのではなく、なぜその画像をモーフィングするのかわかりません。 – yaegerbomb

+0

あなたのコードが何をするつもりか分かりません。一見したところでは、選択や変更のイベントが発生したときに、すぐにsetCoordsでリセットするように見えます。 Esp onChange - "選択が移動しているときに呼び出されます"; x = 0、y = 0、w = 0、h = 0に直ちに戻っているので、私が正しく従えば、ユーザーは実際に座標を設定させることは決してありません。もう一度推測しますが、無効な選択を見て、デフォルト選択 - setSelect:[100、100、50、50]を使用するだけです。例のshowCoords()へのコールバックは、セッターではなくアクセッサ関数であるようです。 – BrianFreud

+0

イメージのサイズを160x160に設定しているので、100x50のイメージでは、100x50イメージを160x160ボックス内の160x80に伸ばしているように見えます。 – BrianFreud

7

私は同じ問題を抱えていましたが、なぜそれが起こったのかを知りました。私はこの定義から、幅と高さを取り除い

img { 
    width: 100%; 
    height: auto; 
    border: none; 
} 

は、プラグインが正常に機能し始めた:私のCSSファイルで

私はこのコードを持っていました。

関連する問題