JavaScript 코드클립보드에 콘텐츠 복사
-
var result = document.getElementById("/* 오류 메시지 표시 블록 */")
-
var input = document.getElementById("/* 파일 태그 업로드 */")
-
-
if(typeof FileReader === '정의되지 않음'){
-
result.innerHTML = "
죄송합니다. 귀하의 브라우저는 FileReader
를 지원하지 않습니다.";
- input.setAttribute('비활성화','비활성화');
}
- 그밖에{
input.addEventListener(
- '변경',readFile,false);
}
-
-
함수
- readFile(){
var
- file = this.files[0]
if
- (!/image/w /.test(file.type)){
warning("파일이 이미지 형식인지 확인하세요."
- )
반환
- 거짓
}
- var
- reader = new FileReader()
reader.readAsDataURL(파일)
- reader.onload = 함수
- (e){
// this.result 컴파일된 이미지 인코딩은 src로 직접 표시 가능
-
}
- }
-
2. 캔버스에서 이미지 처리
- var c=document.getElementById("/* 캔버스 태그 ID */"); >
-
var cxt=c.getContext("2d")
-
var img=new 이미지()
img.src=-
/* 획득한 이미지 인코딩 주소 */
-
var width = img.width;
var-
높이 = img.height;
dic = 높이 / 너비
c.width = 200; - //이미지 압축 기준은 200px을 기준으로 계산됩니다.
-
cxt.clearRect(0,0,200,200*dic) -
cxt.drawImage(img,0,0,200,200*dic) -
- var
finalURL = c.toDataURL() -
// 얻은 최종 URL은 img 태그를 업로드하거나 직접 생성하는 데 사용할 수 있는 압축된 이미지 인코딩입니다.
-
여기서 주의할 몇 가지 사항은 다음과 같습니다.
1. 로컬에서 디버깅할 때 오류가 발생합니다. 원인은 크로스 도메인 문제이므로 서버 측에서 디버깅해야 합니다.
2. 캔버스의 drawImage() 메소드에는 이미지 자르기 기능이 있지만, 이미지 늘이기 및 자르기를 동시에 작성하면 자르기 메소드가 먼저 실행됩니다.
3. AJAX를 사용하여 이미지 인코딩을 업로드하면 인코딩의 더하기 기호가 공백으로 변환되어 백그라운드 컴파일이 실패하게 됩니다.
4. 이미지 영역을 선택하고 업로드하는 방법은 아직 시범 단계이며 나중에 경험을 추가하겠습니다.
위 내용은 이 글의 전체 내용입니다. 모든 분들의 공부에 도움이 되었으면 좋겠습니다.
원문:
http://www.cnblogs.com/liaojh/p/5209433.html