2014-01-11 54 views
2

我想弄清楚如何使用給定的img元素,並使用Javascript將img拆分爲四個相同大小的圖塊。也就是說,原始圖像的左上象限將變成其自己的img元素,如同其他三個象限一樣。然而,我不知道如何做到這一點。有人可以提供一個起點或解釋如何/如果這可以完成?它會不會是粗暴的像素操作?使用Javascript將一個img元素拆分爲四個相同大小的較小img元素

+0

你對結果圖像做什麼?你只是展示他們? – Brad

+0

目前,是的。我以後會和他們一起做點什麼。 – ChiKapa

回答

5

我相信在這裏最好的解決辦法是使用的畫布。唯一需要注意的是原始圖像必須在本地提供或通過CORS提供。完成此解決方案的步驟將是:

  1. 選擇圖像,或通過javascript設置圖像的源(如果未顯示)
  2. 的Onload圖像,創建4個畫布每1/4圖像
  3. 使用的drawImage的大小,圖像的每個季度畫上每個小帆布
  4. 獲取每個畫布的每個圖像源(canvas.toDataUrl)
  5. 創建新的圖像元素並設置其來源各新來源

可以在鏈接的codepen示例上查看整個解決方案。

codepen example

+0

我的解決方案當然可以重構,它只是一個如何使用畫布將圖像裁剪爲4個較小圖像的示例。 –

+0

爲什麼只有一個象限顯示?我瞭解代碼,但只顯示右上角。他們似乎都在追加。 – ChiKapa

+0

這不會發生在我身上;這是我的JavaScript顯示圖像以及http://pastie.org/8629349 –

0

你可以做這樣的事情在jQuery的:

<div id="img"> 
    <img src="myimage.png" alt="" style="width: 100px; height: 100px;" /> 
</div> 

<script> 
var imgSrc = $("#img img").attr("src"); 

for(var i=0; i<4; i++) 
    $("#img").append($("<div></div>").attr("src", imgSrc).css({ width: (imgWidth/4), height: (imgHeight/4) })); 
</script> 
+0

我相信我們的目標是通過將原始圖像裁剪到四分之一來創建新圖像。 –