私は単純なジグソーパズルを作成しています。これを行うには、私は20枚の画像を切り取る必要があります。 Javascriptで画像を20個の等しい部分にカットし、それらをWebページ内の20個の異なるオブジェクトとして保存する方法はありますか?または、私はちょうどフォトショップに行って、それぞれの写真をカットしてそれを呼び出す必要がありますか?Javascriptで画像を切り抜く
答えて
これは、画像をdivの背景として設定し、背景の位置を設定することで可能です。これは基本的にはCSS Spritesと同じです。
(仮定の作品は100×100pxにしている) 3210CSS:
.puzzle {
background-image:url(/images/puzzle.jpg);
width:100px;
height:100px;
}
.piece1 {
background-position:0 0
}
.piece2 {
background-position:-100px -100px
}
これでdiv IDでも同じことができますか? – TheChes44
確かに、同じこと。 –
これは、キャンバスで行うのは簡単です。一般的な考え方は次のとおりです。
var image = new Image();
image.onload = cutImageUp;
image.src = 'myimage.png';
function cutImageUp() {
var imagePieces = [];
for(var x = 0; x < numColsToCut; ++x) {
for(var y = 0; y < numRowsToCut; ++y) {
var canvas = document.createElement('canvas');
canvas.width = widthOfOnePiece;
canvas.height = heightOfOnePiece;
var context = canvas.getContext('2d');
context.drawImage(image, x * widthOfOnePiece, y * heightOfOnePiece, widthOfOnePiece, heightOfOnePiece, 0, 0, canvas.width, canvas.height);
imagePieces.push(canvas.toDataURL());
}
}
// imagePieces now contains data urls of all the pieces of the image
// load one piece onto the page
var anImageElement = document.getElementById('myImageElementInTheDom');
anImageElement.src = imagePieces[0];
}
これはSecurityErrorを与えるかもしれません: 'HTMLCanvasElement'の 'toDataURL'を実行できませんでした:汚染されたキャンバスはエクスポートできません。 –
このマットありがとうございました。 –
@MertKoksal CORSのため 設定できます: img.setAttribute( 'crossOrigin'、 'anonymous'); を参照: https://stackoverflow.com/a/20424457/7121889 –
あなたは元画像の部分をスライスし、キャンバスにそれらを描画するためにdrawImageメソッドを使用することができます。
drawImage(image, sx, sy, sWidth, sHeight, dx, dy, dWidth, dHeight)
https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Canvas_tutorial/Using_images
のようなもの:
document.getElementById("vangogh").onclick=function()
{
draw();
};
function draw() {
var ctx = document.getElementById('canvas').getContext('2d');
ctx.drawImage(document.getElementById('source'),33,45);
}
新しいエンティティにドラッグ可能なコンテンツを作成:
<div id="columns">
<div class="column" draggable="true"><header>A</header></div>
<div class="column" draggable="true"><header>B</header></div>
<div class="column" draggable="true"><header>C</header></div>
</div>
- 1. C#で画像を切り抜く
- 2. プログラムで画像を切り抜く
- 3. Cで画像を切り抜く#
- 4. CGImageRefで画像を切り抜く
- 5. 画像をCSSで切り抜く
- 6. 画像を手動で切り抜く
- 7. OpenCV C++で画像を切り抜く
- 8. 画像を切り抜く/切り抜くことができません
- 9. ASP.NET C#:画像を切り抜く
- 10. PHP - 画像を切り抜くには?
- 11. 中央の画像と切り抜く
- 12. jpeg画像からポリゴン画像を切り抜くJava
- 13. 画像を切り抜き、PHPでアップロード
- 14. 画像をキャプチャして切り抜き画像を切り抜いて保存画像
- 15. Codeigniterでサムネイル画像を四角で切り抜く
- 16. エリアを選択してiPhoneで画像を切り抜く
- 17. %をベースにopencvとpythonで画像を切り抜く方法
- 18. Androidで画像ファイルのパスを渡して画像を切り抜く
- 19. opencvの記述ファイルで画像を切り抜く方法
- 20. ワードプレスのクラシファイドテーマからフロントエンドで画像を切り抜く方法
- 21. matplotlibで変形された画像を切り抜く
- 22. HTML5 CSSまたはC#.NETで画像を切り抜く
- 23. 下からプログラムで画像を切り抜く
- 24. GDライブラリでサイズ変更して画像を切り抜く
- 25. iosで画像を切り抜くためのサークルマスキング
- 26. iphone sdkで画像サークルを切り抜く方法
- 27. x、y、w、hで画像を切り抜く
- 28. iPhoneで画像を切り抜く方法
- 29. iphoneで特定の画像を切り抜く方法
- 30. Rails、Carrierwave、Minimagickでアップロードした画像を切り抜くには?
canvas要素は、あなたが作品を「切り取る」させますが、やって正確にどのようにそれはあなたが*作品と*やりたいことの周りにあなたの正確な要件に依存するであろう。 – Pointy
私はそれらの作品をドラッグ可能かつドロップ可能にしたい。私は現在、このタスクでJqueryを使用していますが、この機能はサポートされていないため、サードパーティ製のアドオンは機能していないため、Jqueryの使用を避けています。ドラッグ&ドロップできるのであればHTML5に切り替えるかもしれません。とにかく、基本的に20種類の画像をドラッグしてフレームにドロップし、パズルを「解決」できるようにします。 – TheChes44