回答
您可以修改my previous answer略,並具有施加到的寬度(或高度)的半部罪範圍如偏移量,然後取該偏移量x 2並從新行的總高度中減去。
會發生什麼情況是sin()函數將接受輸入並在[0.0,1.0]之間產生一個新值。通常情況下,你可以結合sin + cos來產生一個圓,但是我們只需要一個軸的值,因爲我們只需要更多的橢圓形,所以我們用小於半徑的值進行縮放(圖像大小代表軸上的直徑)之後)。
與我在其他的回答讓代碼夫妻修改所以:
var ctx = c.getContext("2d"); // just some inits for demo
var img = new Image;
img.onload = slice;
img.src = "//i.stack.imgur.com/UvqUP.gif";
function slice() {
var w = c.width = this.width;
var h = c.height = this.height;
var step = Math.PI/w; // half circle/width of canvas
var scale = 75; // max displacement on y
for(var x = 0, offset; x < w; x++) {
offset = Math.sin(step*x)*scale;
ctx.drawImage(this,
x, 0, 1, h, // source line from image
x, offset, 1, h - offset*2); // displaced line
}
}
<canvas id=c></canvas>
(垂直作用只是參考其中的變化是在以前的答案和適用抵消,而不是公式)。
感謝大家的幫助。還有一件事如果我想從圖像的一個角落開始生成貼圖的橢圓形線條。那麼我需要做什麼? – Mohammed
使用來自距離?水平中心將一個正弦波應用於圖像比例,您只需要部分o F中的正弦波(PI/2到PI)或(COS 0〜PI/2)
var img = new Image;
img.src = "//i.stack.imgur.com/UvqUP.gif";
var ctx = can.getContext("2d");
img.onload = function() {
var w,h,ch,cw,amount,x,scale;
w = can.width = this.width;
h = can.height = this.height;
cw = w/2;
ch = h/2;
amount = 50; // amount to bend in pixels
amount *= 1/ch; // convert to unit scale
for(var x = 0; x < w; x++) {
\t scale = 1.0 - (Math.cos(((cw - x)/cw) * Math.PI * 0.5)) * amount;
ctx.drawImage(this, x, 0, 1, h, x, ch - ch * scale , 1, h * scale);
}
}
<canvas id="can"></canvas>
是不是這幾乎是一個覆蓋的副本k3ns代碼鏈接答案在評論頂部? – torox
@torox發佈這個17小時前和沒有複製任何東西 – Blindman67
@torox事實上,如果有什麼已被複制,它已從我的答案。看看發佈時間,並看看誰是第一個。 – Blindman67
- 1. 如何圖像像素轉換成S形曲線形狀在畫布
- 2. 轉換像素
- 3. 像素到像素轉換
- 4. 如何將畫布轉換爲圖像?
- 5. 如何將圖像視圖轉換爲自定義形狀(swift3)
- 6. 轉換圖表COORDS像素
- 7. PHP - 如何將矩形圖像轉換爲方形圖像?
- 8. 轉換圖像
- 9. 圖像轉換
- 10. 圖像轉換
- 11. 圖像轉換
- 12. 轉換HTML img元素帆布
- 13. PHP和帆布像素顏色替換
- 14. 如何圖像刷轉換爲圖像
- 15. 從像素陣列轉換圖像
- 16. 按像素進行2D圖像轉換
- 17. 將方形圖像轉換爲矩形
- 18. 將矩形圖像轉換成梯形
- 19. 轉換形狀
- 20. 轉換帆布OpenGL的
- 21. 如何轉換movieclip形狀?
- 22. 如何將圖像轉換爲圖像的ASCII表示形式?
- 23. 如何將fish_eye圖像轉換爲平面矩形圖像?
- 24. 如何在Qt4中高效地轉換像素圖的像素
- 25. 將像素轉換爲多邊形
- 26. 瞭解畫布如何將圖像轉換爲黑白圖像
- 27. 將像素轉換爲畫布
- 28. 轉換畫布座標到像素
- 29. 將圖像轉換爲圖形在c#
- 30. 將具有簡單形狀的圖像轉換爲多邊形
是的,你可以訪問這裏的樣機: - http://stackoverflow.com/questions/42712312/how-to-convert-image-pixel-into-s-curve-shape-in-canvas @Kaiido – Mohammed
我試過使用這種技術,但我認爲我犯了一些錯誤。但沒有得到哪裏? – Mohammed
是的,你是非常正確的這樣的事情。但它應該看起來像)|(類似這樣的兩條反轉'c'之間的直線 – Mohammed