Signature_pad: .fromDataURL() ํฌ๊ธฐ ์กฐ์ • ๋ฌธ์ œ ์‚ฌ์šฉ

์— ๋งŒ๋“  2014๋…„ 11์›” 26์ผ  ยท  8์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: szimek/signature_pad

์•ˆ๋…•ํ•˜์„ธ์š” .fromDataURL()์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด ๋ฉ‹์ง„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋™์ผํ•œ ํฌ๊ธฐ์˜ ์บ”๋ฒ„์Šค์—์„œ ์ƒ์„ฑ๋œ ์„œ๋ช…์„ ๋กœ๋“œํ•  ๋•Œ ์ด๋ฏธ์ง€์˜ ํฌ๊ธฐ๊ฐ€ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ง€์ •๋˜์ง€ ์•Š๊ณ  ํฌ๊ธฐ์˜ 1/4์ด ๋ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ธ์ง€ ์•„๋‹Œ์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์ง€๋งŒ ์›๋ž˜ ์„œ๋ช…ํ•˜๊ธฐ ์ „๊ณผ ๋ฉ”๋ชจ๋ฆฌ์— ์„œ๋ช…์„ ๋กœ๋“œํ•˜๊ธฐ ์ „์— ์บ”๋ฒ„์Šค ํฌ๊ธฐ๋ฅผ ์กฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ๋‚ด ๋…ผ๋ฆฌ์— ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? ์•„๋‹ˆ๋ฉด ์ „์— ์ด๊ฒƒ์„ ๋ณธ ์‚ฌ๋žŒ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

๋™์ผํ•œ ์ด๋ฏธ์ง€ ํฌ๊ธฐ๋ฅผ ๋งŒ๋“ค๋ ค๋ฉด ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค
signaturePad.fromDataURL(data, {width: 100, height: 100})
๋„ˆ๋น„, ๋†’์ด๋Š” ์บ”๋ฒ„์Šค ํฌ๊ธฐ์™€ ๊ฐ™์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.
์ž์„ธํ•œ ๋‚ด์šฉ์€:
https://github.com/szimek/signature_pad/blob/master/src/signature_pad.ts

๋ชจ๋“  8 ๋Œ“๊ธ€

Btw, ๊ทธ๊ฒƒ์€ window.devicePixelRatio๊ฐ€ ์–ด๋–ค ์ด์œ ๋กœ ๋™์ผํ•˜์ง€ ์•Š์€ ๊ฒƒ๊ณผ ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์—ฌ์ „ํžˆ ์กฐ์‚ฌ ์ค‘์ด์ง€๋งŒ ๋‚ด ์ฝ”๋“œ์— ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ตœ์‹  ๋ฒ„์ „(1.3.4)์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ? 1.3.3์€ window.devicePixelRatio fromDataURL ๋ฅผ ์ˆ˜์ •ํ•ด์•ผ ํ–ˆ์ง€๋งŒ ์‹ค์ œ๋กœ 1.3.4์—์„œ ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ตœ์‹  ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๋น„์œจ์„ ์ ์ ˆํ•˜๊ฒŒ ์ˆ˜์ •ํ•˜๋ฉด(๋ฐ๋ชจ์ฒ˜๋Ÿผ) ๋‚ด ์†๊ฐ€๋ฝ์ด ์„ ์ด ํ‘œ์‹œ๋˜๋Š” ์œ„์น˜์™€ ์ผ์น˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋‹จ์ง€ ๊ฐ„๋‹จํ•œ ๋ฐ๋ชจ๋ฅผ ๋งŒ๋“ค๊ณ  ์žˆ์œผ๋ฏ€๋กœ ๊ทธ๋‹ค์ง€ ์ค‘์š”ํ•˜์ง€ ์•Š์œผ๋ฉฐ ๋‚˜์ค‘์— ๋” ๋‹ค๋ฃฐ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‹ค์Œ์€ ๊ฐ„๋‹จํ•œ ๋ฐ๋ชจ์ž…๋‹ˆ๋‹ค: http://jsfiddle.net/szimek/baL7r8xd. "๋ฐ”๊พธ๊ธฐ" ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ์บ”๋ฒ„์Šค๊ฐ€ ์ง€์›Œ์ง€๊ณ  1์ดˆ ํ›„์— ์ด๋ฏธ์ง€๊ฐ€ ๋‹ค์‹œ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. window.devicePixelRatio ๊ฐ€ 2์ธ iPhone์—์„œ๋Š” ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

์ด์ƒํ•˜๊ฒŒ๋„ ๋‚ด ์•ˆ๋“œ๋กœ์ด๋“œ์—์„œ๋„ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

๊ณ ๋งˆ์›Œ, ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ์•Œ์•„๋‚ผ ๊ฒƒ์ด๋‹ค :)

์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ์‚ฌ๋žŒ์„ ์œ„ํ•ด ๋‚ด๊ฐ€ ๋ญ˜ ์ž˜๋ชปํ•˜๊ณ  ์žˆ๋Š”์ง€ ์•Œ์•„๋ƒˆ์Šต๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅํ•˜๊ธฐ ์ „์— .fromDataURL(data) ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์บ”๋ฒ„์Šค์˜ ํฌ๊ธฐ๋ฅผ ์ ์ ˆํ•˜๊ฒŒ ์กฐ์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

      function resizeCanvas(canvas) {
        var ratio =  window.devicePixelRatio || 1;
        canvas.width = canvas.offsetWidth * ratio;
        canvas.height = canvas.offsetHeight * ratio;
        canvas.getContext('2d').scale(ratio, ratio);
      }

      resizeCanvas(canvas);

๋™์ผํ•œ ์ด๋ฏธ์ง€ ํฌ๊ธฐ๋ฅผ ๋งŒ๋“ค๋ ค๋ฉด ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค
signaturePad.fromDataURL(data, {width: 100, height: 100})
๋„ˆ๋น„, ๋†’์ด๋Š” ์บ”๋ฒ„์Šค ํฌ๊ธฐ์™€ ๊ฐ™์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.
์ž์„ธํ•œ ๋‚ด์šฉ์€:
https://github.com/szimek/signature_pad/blob/master/src/signature_pad.ts

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰