とにかく、生のJavaScriptを使用して画像をトリミングすることはできますか?特定の幅、高さ、offsetX、offsetYの画像(htmlタグやソースなど)を取得して、指定した部分の画像を作成する機能が欲しいです。
私はHTML5キャンバスなどにあまり詳しくありませんが、古いブラウザをサポートする必要があるので、それもオプションではありません(私が知っているのは残念です)。
これが明確であることを願っています。ありがとう。
とにかく、生のJavaScriptを使用して画像をトリミングすることはできますか?特定の幅、高さ、offsetX、offsetYの画像(htmlタグやソースなど)を取得して、指定した部分の画像を作成する機能が欲しいです。
私はHTML5キャンバスなどにあまり詳しくありませんが、古いブラウザをサポートする必要があるので、それもオプションではありません(私が知っているのは残念です)。
これが明確であることを願っています。ありがとう。
多くの場合、CSSスタイルを使用して画像をトリミングして表示することにより、レンダリングの制限を設定するだけで十分です。
の代わりに、img
を使用しdiv
ます。に必要なサイズを割り当てますdiv
。background
プロパティをに設定します-x -y url('...url-of-your-image...') no-repeat
を、表示する左上のオフセットにx
置き換えます。y
画像の一部を表示するだけの場合は、cssクリップを使用します:https ://developer.mozilla.org/en/CSS/clip 。JavaScriptが無効になっている場合でもIE6+で動作します。
画像を物理的にトリミングする必要があり、IE6のサポートが必要な場合は、Flashを使用するか、データとトリミング値をサーバーに送信して、トリミングされた画像を返します。
これで試してください:
function crop(img_id, crop_id, x, y, width, height) {
$(crop_id).update('<img id="' + crop_id + '_img" src="' +
$(img_id).getAttribute('src') + '" style="display:none" />');
var scale_x = $(crop_id).getWidth() / width;
var scale_y = $(crop_id).getHeight() / height;
$(crop_id).setStyle({
position: 'relative',
overflow: 'hidden'
});
$(crop_id + '_img').setStyle({
position: 'absolute',
display: 'block',
left: (-x * scale_x) + 'px',
top: (-y * scale_y) + 'px',
width: ($(img_id).getWidth() * scale_x) + 'px',
height: ($(img_id).getHeight() * scale_y) + 'px'
});
}
問題:Jqueryが必要で、おそらくソリューションはIE8+で機能します...IE6+が必要ですか?