JavaScriptによる画像切り出し機能
インターネットの発展に伴い、私たちの生活において写真の重要性はますます高まっています。 Web 開発では、画像をトリミングする必要に遭遇することがよくあります。この記事では、JavaScript を使用して簡単な画像トリミング機能を実装し、コード例を添付します。
1. 技術的な準備
画像トリミング機能を実装する前に、次の技術を準備する必要があります:
2. ページ レイアウト
まず、画像を表示し、トリミング機能用のコントロール ボタンを追加するためのページ構造を構築する必要があります。以下は簡単なサンプル コードです。
<!DOCTYPE html> <html> <head> <title>图片剪裁功能</title> <style> #container { width: 800px; margin: 0 auto; text-align: center; } canvas { border: 1px solid #000; margin-bottom: 20px; } button { padding: 10px; margin: 10px; font-size: 14px; } </style> </head> <body> <div id="container"> <canvas id="imageCanvas" width="600" height="400"></canvas> <button onclick="loadImage()">上传图片</button> <button onclick="cropImage()">剪裁图片</button> </div> <script src="script.js"></script> </body> </html>
このサンプル コードでは、画像とコントロール ボタンを含めるコンテナ (<div id="container">
) を作成します。画像は <canvas>
タグ (<canvas id="imageCanvas">
) を介して表示され、後続の JavaScript コード操作を容易にするために ID が追加されました。 3. 画像のトリミング機能を実装する JavaScript
const imageCanvas = document.getElementById('imageCanvas'); const ctx = imageCanvas.getContext('2d'); let image = null; function loadImage() { const input = document.createElement('input'); input.type = 'file'; input.accept = 'image/*'; input.onchange = function(event) { const file = event.target.files[0]; const reader = new FileReader(); reader.onload = function(e) { const img = new Image(); img.onload = function() { ctx.clearRect(0, 0, imageCanvas.width, imageCanvas.height); ctx.drawImage(img, 0, 0, imageCanvas.width, imageCanvas.height); image = img; }; img.src = e.target.result; }; reader.readAsDataURL(file); }; input.click(); } function cropImage() { if (image) { const cropCanvas = document.createElement('canvas'); const cropCtx = cropCanvas.getContext('2d'); cropCanvas.width = 400; cropCanvas.height = 400; cropCtx.drawImage(image, 0, 0, cropCanvas.width, cropCanvas.height); const croppedImage = cropCanvas.toDataURL('image/jpeg'); window.open(croppedImage); } else { alert('请先上传图片'); } }
を通じて <canvas>
要素を取得します。 imageCanvas.getContext('2d')
を通じて 2D グラフィックスを描画するためのコンテキスト オブジェクトを取得します。
関数は画像をアップロードするために使用されます。これは、<input>
要素を作成し、そのタイプをファイル (input.type = 'file'
) に設定し、onchange
をリッスンすることによって取得されます。イベント ユーザーがアップロードした画像ファイル。次に、ユーザーがアップロードした画像ファイルを FileReader
を介して読み取り、URL (reader.readAsDataURL(file)
) に変換します。次に、<image></image>
要素を作成し、その src
を取得した URL に設定し、この <image></image>
要素を に描画します。
上。
関数は画像をトリミングするために使用されます。まず、ユーザーが画像をアップロードしたかどうかを判断します。画像がアップロードされている場合は、新しい <canvas>
要素を作成し、その要素の幅と高さを設定します (この例では、幅と高さを 400 に設定します)。次に、drawImage()
メソッドを使用して元の画像を新しい <canvas>
に描画し、切り取った画像を URL に変換します。最後に、新しいウィンドウを開いて、window.open()
を通じて切り取った画像を表示します。 4. エフェクト表示
先ほど作成したHTMLファイルをブラウザで開き、「画像アップロード」ボタンをクリックし、アップロードする画像を選択します。その後、「画像をトリミング」ボタンをクリックすると、新しいウィンドウにトリミングされた画像が表示されます。
以上がJavaScriptベースの画像トリミング機能を実装の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。