ユーザーにインターフェイスを提供するためにクロップツールを使用しています。問題は、返されたイメージが元のイメージではなくインターフェイスにサイズ設定されていることです。さまざまなAPIを使ってこの動作を制御する何らかの方法を提供しているかどうか(私はそれらのうちのいくつかを想定しています)、単純な手順なので、手動で画像を切り抜く方法を示します。 Jcropはcropstart、cropmove、cropendのための様々なイベントを提供し
...あなたはこれらのイベントをリッスンするリスナーを追加し、現在のクロップインタフェース状態
のコピーを保持することができ、例としてJCropを使用するに
あなたがインターフェイスのサイズを設定していると私はイベントが
var interfaceSize = { //you will have to work this out
w : ?,
h : ?.
}
あなたまたはインタフェーススケールで作物の詳細を返すと仮定しています
var currentCrop;
jQuery('#target').on('cropstart cropmove cropend',function(e,s,crop){
currentCrop = crop;
}
私にはわかりませんiginal画像
var myImage = new Image(); // Assume you know how to load
作物のボタンがクリックされたときにだからあなたはトリミングされたサイズでキャンバスを作成し、元の画像サイズにクロップ詳細をスケーリングして新しいイメージを作成することができ、トリミングされた領域のように画像を描画しますキャンバスをそのまま、または新しいイメージとして返します。
// image = image to crop
// crop = the current cropping region
// interfaceSize = the size of the full image in the interface
// returns a new cropped image at full res
function myCrop(image,crop,interfaceSize){
var scaleX = image.width/interfaceSize.w; // get x scale
var scaleY = image.height/interfaceSize.h; // get y scale
// get full res crop region. rounding to pixels
var x = Math.round(crop.x * scaleX);
var y = Math.round(crop.y * scaleY);
var w = Math.round(crop.w * scaleX);
var h = Math.round(crop.h * scaleY);
// Assume crop will never pad
// create an drawable image
var croppedImage = document.createElement("canvas");
croppedImage.width = w;
croppedImage.height = h;
var ctx = croppedImage.getContext("2d");
// draw the image offset so the it is correctly cropped
ctx.drawImage(image,-x,-y);
return croppedImage
}
あなただけクロップボタンはあなたがダウンロードしてdataURLに画像を変換することができ
var croppedImage;
myButtonElement.onclick = function(){
if(currentCrop !== undefined){ // ensure that there is a selected crop
croppedImage = myCrop(myImage,currentCrop,interfaceSize);
}
}
をクリックしたときに、この関数を呼び出す必要があり、
imageData = croppedImage.toDataURL(mimeType,quality) // quality is optional and only for "image/jpeg" images
彼らはすべてを経由してアップロードしますイメージのネイティブ解像度からクロップされたピクセルを差し引いたものを返すので、私はあなたが意味することについてちょっと混乱しています。問題を示すサンプル画像と、結果がどのようなものかを示す画像を提供して、問題の内容を確認できますか? – Blindman67
こんにちは!コメントありがとう。 [Jcrop](http://deepliquid.com/content/Jcrop.html)に問題がありました。私は現在クロチットを使用しています。私が言ったことは、切り取られた画像は '画像プレビュー'ウィンドウのサイズに依存するということです。大きな画像、たとえば1920x1080pxがある場合は、選択した領域を切り抜きたい、「画像プレビュー」ウィンドウが40x40pxである場合、領域がたとえば40x40pxの画像でも画像が得られます。 500x500ピクセル。画像のプレビューサイズを小さくすることで、この500x500ピクセルを達成する方法はありますか? – PLAYCUBE