클라이언트 측에서 캔버스를 사용하여 이미지 크기 조정
목적
사용자에게 이미지를 업로드하도록 하는 웹 앱으로 이미지 해상도가 큰 경우 서버측에서 업로드된 이미지의 해상도를 크기 조정하여 저장하는 처리를 구현할 수 있다고 생각합니다.
서버 측이 아니라 클라이언트 측에서 이미지를 크기 조정하는 방법을 조사했습니다.
기능
다음 canvas 메서드를 이용하여 클라이언트 측에서 이미지의 크기를 조정할 수 있습니다.
ctx.drawImage(srcImage, srcX, srcY, srcWidth, srsHeight, dstX, dstY, dstWidth, dstHeight)
첫 번째 인수에 원본 이미지 (Image 객체, 다른 canvas 객체 등을 지정할 수 있음)
제 2, 3, 4, 5 인수에 원 화상으로부터 잘라내는 영역을 지정
제6, 7, 8, 9 인수에 리사이즈 후의 영역을 지정
var scale = 0.5; // 縦横を50%縮小
var canvas = document.createElement('canvas');
var ctx = canvas.getContext('2d');
var image = new Image();
var reader = new FileReader();
image.crossOrigin = "Anonymous";
image.onload = function(event){
var dstWidth = this.width * scale;
var dstHeight = this.height * scale
canvas.width = dstWidth;
canvas.height = dstHeight;
ctx.drawImage(this, 0, 0, this.width, this.height, 0, 0, dstWidth, dstHeight);
$("#dst").attr('src', canvas.toDataURL());
}
image.src = "https://lh3.ggpht.com/O0aW5qsyCkR2i7Bu-jUU1b5BWA_NygJ6ui4MgaAvL7gfqvVWqkOBscDaq4pn-vkwByUx=w300"; // 元画像
데모
h tp // js 푹 dぇ. 네 t/게이 k즈 CK/응 ts6로 jh/1/
Chrome에서 마우스 오른쪽 버튼을 클릭하고 '새 탭에서 이미지 열기'를 실행하면 실제 해상도가 축소된 이미지가 표시됩니다.
요약
클라이언트 측에서 이미지를 크기 조정하는 방법을 조사했습니다.
이 방법을 이용하면, 유저가 지정한 파일을 클라이언트측에서 리사이즈 해, 그 후 서버에 업로드 하는 등의 처리가 가능하게 됩니다.
Reference
이 문제에 관하여(클라이언트 측에서 캔버스를 사용하여 이미지 크기 조정), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/geekduck/items/2db28daa9e27df9b861d
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
다음 canvas 메서드를 이용하여 클라이언트 측에서 이미지의 크기를 조정할 수 있습니다.
ctx.drawImage(srcImage, srcX, srcY, srcWidth, srsHeight, dstX, dstY, dstWidth, dstHeight)
첫 번째 인수에 원본 이미지 (Image 객체, 다른 canvas 객체 등을 지정할 수 있음)
제 2, 3, 4, 5 인수에 원 화상으로부터 잘라내는 영역을 지정
제6, 7, 8, 9 인수에 리사이즈 후의 영역을 지정
var scale = 0.5; // 縦横を50%縮小
var canvas = document.createElement('canvas');
var ctx = canvas.getContext('2d');
var image = new Image();
var reader = new FileReader();
image.crossOrigin = "Anonymous";
image.onload = function(event){
var dstWidth = this.width * scale;
var dstHeight = this.height * scale
canvas.width = dstWidth;
canvas.height = dstHeight;
ctx.drawImage(this, 0, 0, this.width, this.height, 0, 0, dstWidth, dstHeight);
$("#dst").attr('src', canvas.toDataURL());
}
image.src = "https://lh3.ggpht.com/O0aW5qsyCkR2i7Bu-jUU1b5BWA_NygJ6ui4MgaAvL7gfqvVWqkOBscDaq4pn-vkwByUx=w300"; // 元画像
데모
h tp // js 푹 dぇ. 네 t/게이 k즈 CK/응 ts6로 jh/1/
Chrome에서 마우스 오른쪽 버튼을 클릭하고 '새 탭에서 이미지 열기'를 실행하면 실제 해상도가 축소된 이미지가 표시됩니다.
요약
클라이언트 측에서 이미지를 크기 조정하는 방법을 조사했습니다.
이 방법을 이용하면, 유저가 지정한 파일을 클라이언트측에서 리사이즈 해, 그 후 서버에 업로드 하는 등의 처리가 가능하게 됩니다.
Reference
이 문제에 관하여(클라이언트 측에서 캔버스를 사용하여 이미지 크기 조정), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/geekduck/items/2db28daa9e27df9b861d
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
클라이언트 측에서 이미지를 크기 조정하는 방법을 조사했습니다.
이 방법을 이용하면, 유저가 지정한 파일을 클라이언트측에서 리사이즈 해, 그 후 서버에 업로드 하는 등의 처리가 가능하게 됩니다.
Reference
이 문제에 관하여(클라이언트 측에서 캔버스를 사용하여 이미지 크기 조정), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/geekduck/items/2db28daa9e27df9b861d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)