2016-06-06 2 views
1

은 내가 최대 300x300 이미지가 어떻게 :사용자 선택과 이미지 크기에

<style> 
     #profileImage, #profilePP { 
     max-width: 300px; 
     max-height: 300px; 
     min-width: 50px; 
     min-height: 50px; 
    } 

    #profileBox { 
     width:300px; 
     height:300px; 
     overflow:hidden; 
    } 
    </style> 

    <!-- html extract --> 
     <div id="profileBox"> 
      <img src="check.png'" id="profileImage"> 
     </div> 

나는 사용자가 내가 또한 최대 폭과 300 픽셀의 최대 높이의 수 있도록 확장 <input type="file"를 사용하여 이미지를 선택할 수를 . 그런 다음 사용자가 원하는 이미지의 일부를 선택할 수있는 플러그인이 있습니다. 선택하면 너비 또는 높이 중 작은 값을 사용하고 가로 세로 비율을 1 : 1 Ie square로 설정합니다. 이 플러그 인에서 사용자 선택 (x1, y1, x2, y2)의 오른쪽 위 및 아래 왼쪽 좌표를 가져올 수 있습니다.이 정보를 사용하여이 정보를 사용하여 그림을 올바르게 축척하고 그림을 올바르게 채울 기본 300x300 디스플레이 이미지 누구든지이 일을 수행하는 데 필요한 기본 논리를 제공 할 수 있습니까?

** 편집

나는 다음하지만 작동하지 않습니다 시도 :

// 자바 스크립트 // 선택이고 사용자 선택의 좌표는

    var wh = selection.x2 - selection.x1; 
       var constHeight=parseInt($("#profileBox").css("width")); 

       var proportion=constHeight/wh; 
       var maxHeight=constHeight* proportion; 
       var maxWidth=constHeight* proportion; 

       $("#profileImage").attr("src",$("#profilePP").attr("src")); 
       $("#profileImage").css("margin-top","-"+selection.y1+"px"); 
       $("#profileImage").css("margin-left","-"+selection.x1+"px"); 
       $("#profileImage").css("max-height",maxHeight+"px"); 
       $("#profileImage").css("max-width",maxWidth+"px"); 
+1

지금까지 시도한 것은 무엇입니까? 우리가 당신을 도울 수 있도록 - 또한 JSFiddle을 설정하여 가능한 경우 페이지의 모양을 볼 수 있습니다! –

+0

크기가 알면 'width : 100 %'이미지가 있고 컨테이너'div'는 고정 된 높이와 너비로 오버플로 : 숨김 상태가되면 이미지는 크기에 관계없이 div의 너비로 확장됩니다 그것의 그것은 위아래로 확장됩니다. – Andrew

+1

내부 코드가 서로 얽혀 있기 때문에 코드를 내 보내기가 어렵습니다. 그러나 기본적으로 다음 http://odyniec.net/projects/imgareaselect/의 라이브 예제와 동일하게 처리하려고합니다. 그것은 가변 폭과 높이의 사용자 정의 이미지가 될 수있는 설정 이미지 ... – MarMan29

답변

0

좋아, 내가 생각 나는 그것을 아래에서 해결했다. 또한 사용자 선택이 너무 작아지고 x 또는 y 값을 아무 것도하지 않으면 결국 오버 플로우가 발생할 수 있다는 것을 명심하라. 이 문제를 해결하기위한 방법은 오버플로가 발생하기 전에 최소 선택 량이 보장되도록하는 것입니다 ...

    var constHeight=parseInt($("#profileBox").css("width")); 
       var proportion=constHeight/ (selection.y2 - selection.y1); 
       var maxHeight=constHeight* proportion; 
       var maxWidth=constHeight* proportion; 

       var moveX=selection.x1*proportion; 
       var moveY=selection.y1*proportion; 

       $("#profileImage").attr("src",$("#profilePP").attr("src")); 
       $("#profileImage").css("margin-top","-"+moveY+"px"); 
       $("#profileImage").css("margin-left","-"+moveX+"px"); 
       $("#profileImage").css("max-height",maxHeight+"px"); 
       $("#profileImage").css("max-width",maxWidth+"px"); 
+0

이것은 옳지 않다. – MarMan29

관련 문제